3

我本来想继续写这个讨论,但我的名声不允许我编辑或回答(对此感到抱歉): 网站上不间断的背景音乐

所以快速进入正题:

  • 我确实讨厌网站上的音乐,但不幸的是,这次我找不到任何改变客户想法的方法。
  • 我们正在通过一个通信(图形)机构工作,所以我不能告诉最终客户他是一个 xxiot,我真的需要让这个机构高兴,因为他们最近给了我们很多事情要做,现在是一件好事。

所以底线是他们想要网站上的音乐,并且他们希望可能不必在每次页面加载时重新启动。

我已经决定避免使用框架。

我在试图找到“最好”的方式之间挣扎:

  • 打开一个带有音乐的小弹出窗口(想象一下:“我们建议您使用此音乐访问我们的网站..如果您只是讨厌它关闭此弹出窗口”) PRO:对于 SEO 来说应该不会太糟糕 缺点:popunder 不是非常可靠,浏览器经常更改并且它们停止工作,我不想花时间修复它.. :) 这是我尝试过的脚本https://github.com/hpbuniat/jquery-popunder 但正如我所说的那样有效在 Firefox 和 IE 上,在 Chrome 25 上它作为弹出窗口打开,在 Safari 上不能正常工作。

  • 反之亦然:该域在一个只有徽标、背景和音乐的页面上打开,自动打开一个带有常规站点的新标签...如果有人关闭初始标签,他们不会有音乐,但如果他们他们基本上没有连续的音乐...当他们关闭浏览器时,沉默又回来了:) PRO:应该适用于所有浏览器(或者至少我可以备份输入站点链接,对 SEO 也很有用) 缺点:搜索引擎优化呢???它会索引其他页面吗?输入站点链接就足够了吗?我真的很担心。:(

我讨厌自己,我讨厌网站上的音乐该死的..

谢谢你们,我希望你们会为我流泪:)

4

1 回答 1

1

对我来说,让它与 ajax 一起工作似乎并不需要大量的工作,即使是这样,它也会是一个很好的体验,它会让你更好地使用和理解今天使用的技术,而不是玩弄10 年前的 hacky 代码,并从网络的黑暗面复制和粘贴一些用于 popunder 的晦涩脚本。

到现在为止所做的一切工作都没有白费,其实这就是渐进增强的原则。让它适用于所有人(包括 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 添加到请求 url 以指示后端仅在存在时返回正文。

显然,您的所有脚本/css 都必须在初始页面上提供,因为头部不会改变(除非您想让一切变得更加复杂),并且需要触发事件绑定或将其委托给 body。

你需要一个 div 为你的播放器(可能有一个固定的位置)所以代码实际上更像

<head>
    ...
</head>
<body>
   <div id="player></div>
   <div id="wrapper">[page html]</div>
</body>

并且您将针对#wrapper 而不是正文。

于 2013-03-01T15:28:01.667 回答