PHP 包含但始终保留 Flash 内容?
Posted
技术标签:
【中文标题】PHP 包含但始终保留 Flash 内容?【英文标题】:PHP include but keep flash content always? 【发布时间】:2012-10-04 14:32:47 【问题描述】:在页面之间切换时是否可以让 Flash 内容(mp3 播放器)始终停留在使用 php include 的主 html 页面上?(home/about/contact 等)?
解决方案: 我使用了 SCM 音乐播放器插件,以及 MP3 播放的专用 html 页面。
【问题讨论】:
是的,它被称为框架。或者ajax切换页面。 你能给我一个使用 ajax 的例子吗,因为我不想为此使用 iframe? 我会使用 jQuery。在它的基本级别,您只需将链接加载到您的内容 div 中。我会写一个快速的答案,但请阅读:api.jquery.com/load 这正是我正在寻找的,因为我已经为该网站设计/编码了所有页面。等待您的答复。 【参考方案1】:假设您的内容是这样设置的:
<ul id="nav">
<li><a href="/some/link">Go Here</a></li>
<li><a href="/some/other/link">Go Here Instead</a></li>
</ul>
<div id="flash">
<!-- mp3 player -->
</div>
<div id="content>
<!-- main content -->
</div>
我们可以告诉这些链接加载到#content
div 中,而不是重定向整个页面。使用 jQuery:
$('ul#nav li a').click(function()
$('#content').load($(this).attr('href'));
return false;
):
链接的内容现在将加载到#content
div 中。显然有影响:浏览器的 url 不会改变,内容只需要查看(不需要***布局),除非您使用 jQuery 的“部分加载”等。
这并不理想。我想说完全为玩家打开一个新窗口。
【讨论】:
我会试试的。如果在 #content 中加载的页面之一包含指向其他 html 页面的链接怎么办?你如何告诉那些也加载到父页面上的同一个 div 中?例如:主页 -> 点击 nav-news -> News.html 加载 -> 包含指向 News1.html 的链接。 您可以使用load()
成功回调来更改这些链接。这可能会很快变得笨拙。我会添加一个data-ajax = "true"
属性并让jQuery 查找这些属性并将它们制作成ajax 链接。这在很大程度上也取决于您的布局/视图设置。
我尝试了 jQuery 代码,但它似乎对我不起作用,我将 $(this) 替换为 $(#main)。 (我还尝试通过您的网站向您发送电子邮件询问问题,但认为它不起作用)。
感谢您的提醒,修复了我的联系页面。我有错误的选择器,这就是它不起作用的原因。更新了答案。应该以a
标签为目标。是的,它应该针对内容 div,那是我的错。【参考方案2】:
如果您需要一个连续播放器,它不会在页面更改之间停止播放,您必须设计您的网页/应用程序才能做到这一点。
这些是主要的方法:
-
在
<iframe>
中浏览网站内容,因此播放器始终保持活跃[就像Beatport 多次以前一样];
在一个小弹出窗口 [一个单独的浏览器窗口] 中打开您的播放器,然后将播放列表信息保存在每次页面加载所需的会话中;
委派所有导航客户端,因此您永远不会发出完整的页面重新加载 [e.g.就像 GMail 一样]。
第一个选项是最脏的,第二个是公平的,但依靠那个小技巧[不知道它在移动环境中如何工作],第三个是最好的,虽然它需要一个更大的整体技能实现 - 没有普通的 PHP,没有凌乱的 jQuery 美元海洋。
最后的想法:坚持使用 HTML 5 <audio>
,将 Flash 后备作为极端手段,但不要将 Flash 作为您的第一技术。
【讨论】:
正如我所说,我不想使用 iframe,因为我遇到了几个问题(如果您愿意,我可以列出)。不过我一开始就是这么设计的。 我也不会使用 iframe,我会坚持使用选项 2 或 3,其中 3 更具前瞻性,而 2 可以更快地完成任务。 你能给我更多关于第二种方法的信息吗?如果我选择为网站切换到完整的 html 元素(而不是包含 iframe 或 php),则需要使用这种方法,因为 mp3 对这个项目至关重要。以上是关于PHP 包含但始终保留 Flash 内容?的主要内容,如果未能解决你的问题,请参考以下文章