我本来想继续写这个讨论,但我的声誉不允许我编辑或回答(抱歉): Uninterrupted background music on website
快速走到这一步:
因此,他们希望在网站上播放音乐的底线,并且他们可能不得不在每个页面加载时重新启动。
我已经决定避免使用框架。
我正在努力寻找“最佳”的方式:
用音乐打开一个小小的popunder窗口(想象一下:“我们建议你用这个音乐访问我们的网站..如果你讨厌它关闭这个弹出窗口”) 专业:对SEO来说不应该太糟糕 缺点:popunder不是很可靠,浏览器经常更改并且他们停止工作,我不想花时间修复那个.. :)这是我试过的脚本https://github.com/hpbuniat/jquery-popunder 但正如我所说的仅适用于Firefox和IE,在Chrome 25上它会弹出一个弹出窗口,在Safari上运行不正常。
反之亦然:域名只会在徽标,背景和音乐的页面上打开,会自动打开常规网站的新标签...如果有人关闭了初始标签,他们就不会有音乐,但如果他们没有,他们基本上有连续的音乐......当他们关闭浏览器时,沉默会回来:) PRO:应该适用于所有浏览器(或者至少我可以备份进入站点链接,对SEO也很有用) 缺点:SEO怎么样?它会索引其他页面吗?是否足以输入网站链接?我真的很担心。 :(
我讨厌自己,我讨厌网站上的音乐...
谢谢你们,我希望你们能为我付出代价:)
答案 0 :(得分:1)
让它与ajax一起使用对我来说似乎并不是一项繁重的工作,即使它是一个很好的体验,会让你更好地使用和理解当今使用的技术,而不是用10年前的hacky代码编写代码,并从网络的黑暗面复制和粘贴一些晦涩难懂的脚本。
到目前为止,你所做的所有工作都没有浪费,实际上这是渐进式增强的原则。让它适用于所有人(包括seo机器人),然后改进它。
像这样的东西会将你的所有锚标签转换为ajax请求,但是它们仍然会回退到普通页面请求。
$('body').on('click', 'a', function() {
var url = $(this).attr('href');
$.ajax({
url: url
}).done(function(response) {
$('body').html(response);
});
return false;
});
您可以在请求网址中添加?ajax = 1,以指示后端仅在返回时返回正文。
显然你的所有脚本/ css都必须在初始页面上提供,因为头部不会改变(除非你想让所有内容更加复杂),并且需要触发事件绑定或委托给正文。
你的玩家需要一个div(可能有一个固定的位置)所以代码实际上更像是
<head>
...
</head>
<body>
<div id="player></div>
<div id="wrapper">[page html]</div>
</body>
你将定位#wrapper而不是身体。