【问题标题】:Playing media across multiple webpages跨多个网页播放媒体
【发布时间】:2013-08-02 09:35:03
【问题描述】:

我想在我正在制作的现场实现一个无线电类型系统。问题是当用户播放音乐然后浏览到网站的不同部分时,音乐将停止。我想知道是否有某种方法可以在不使用 ajax 的情况下跨多个页面播放音乐?我知道我可以使用 Ajax,然后通过 Ajax 调用重新加载每个页面以获取该页面,问题是这些页面将无法添加书签。

那么还有其他方法吗,或者我需要使用 ajax 才能使其工作。

【问题讨论】:

  • 您可以将音频的位置存储在 cookie 或会话变量中。
  • ajax 的唯一替代方案是使用框架
  • @remyabel - 这会在音频中产生间隙,作为一个“广播”系统,我会假设它的广播,所以重新加载会将它放在广播中的当前位置,而没有 JavaScript/cookie 跟踪。
  • @Salketer - 没有争论 - 但他的要求是不可能的,除非他阻止改变“页面”状态的至少一部分。这将需要 ajax 或框架。如果你能想到不同的方式,请回到 /me/。
  • @ClosetGeek 弹出窗口! :) 大多数广播网站都这样做,因此用户可以保持广播打开而不必留在网站上。我不喜欢这个,但它不使用 ajax 或框架。

标签: php javascript html ajax


【解决方案1】:

最好的解决方案仍然是完全按照您的计划进行的 AJAX。而且,正如您所计划的,除非您使用 history.js,否则浏览器历史记录(和书签)将无法正常工作。我会让你从另一篇文章中阅读更多内容:How to "bookmark" page or content fetched using AJAX? 使用 ajax 获取内容

编辑以帮助 AJAX 实现: 如果没有看到您的代码,很难说它是否会起作用,但是类似于这个非常通用的脚本的东西可以使用 jQuery 将任何网站从“常规”转变为 ajax 驱动:

$('body').on('click','a',ajaxContentReplace);
$('body').on('submit','form',ajaxContentReplace);
function ajaxContentReplace(){
    if($(this).is('form'){
        // Will send form data in POST and retrieve the html in #container to put it in #container.
        $('#container').load($(this).prop('action')+' #container',$(this).serializeArray);
    }else{
        // Will retrieve the hole page and put the content of #container in #container of the current page.
        $('#container').load($(this).prop('href')+' #container');
    }
}

这只是一个适用于某些 Basic 网站的快速解决方案,它可能无法满足您的所有需求,但仍是一个开始。

编辑:正如我在问题的 cmets 中指出的那样,流行的广播电台使用弹出窗口播放广播,这样用户就可以离开他们的网站并仍然收听广播。这也是一个非常简单的实现。

【讨论】:

  • 这是最好的解决方案,但它并没有回答他的问题。事实上,他明确表示他不想使用 ajax。
  • 他说他不想使用 AJAX,因为书签有问题……我让他知道这可以解决。
  • 谢谢,我想我最终会使用 ajax 来让它工作,并使用“Salketer”链接中提供的关于书签的信息。再加上弹出窗口是不行的,好主意,但不会为我想做的事情工作。
  • 编辑了我的答案,以便在开始推出 AJAX 时有所注意。
猜你喜欢
  • 2011-05-19
  • 1970-01-01
  • 1970-01-01
  • 2013-01-28
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多