相关疑难解决方法(0)

浏览器标签/窗口之间的Javascript通信

在同一浏览器的选项卡/窗口之间进行Javascript通信的最可靠方法是什么?例如,当Tab 2开始音频播放时,Tab 1以某种方式知道这一点并且可以暂停它的播放器.

我正在建立一个带有音乐播放器的网站...所以,如果你打开两个标签到网站,你可以在两者上开始播放音乐.这显然很糟糕,所以我试图找到一个解决方案.

有任何想法吗?谢谢

javascript browser

144
推荐指数
8
解决办法
13万
查看次数

JavaScript的; 具有相同来源的标签/窗口之间的通信

我有两个窗口:窗口A和窗口B.

  • 窗口A和窗口B具有相同的域
  • 窗口A和窗口B没有任何父窗口.

问题:

  1. 窗口A是否可以获得窗口B的引用?
  2. 什么是最优雅的方式使窗口A通知窗口B?
    (包括新的HTML5规范)

我知道这样做的两种方式:

  • 服务器消息传递:窗口B常规询问服务器窗口A是否已通知某事
  • 通过本地数据进行消息传递(HTML5):当窗口A想要通知它改变本地数据的东西时,窗口B定期检查本地数据是否有任何变化.

但这两种方式并不那么优雅.
例如,获得窗口B的引用并使用window.postMessage()(HTML5)会很不错

最终的目标是制作像facebook这样的东西,如果你打开4个Facebook标签并在一个标签中聊天,聊天是最新的每个Facebook标签,这是整洁的!

javascript html5 web-applications postmessage local-storage

69
推荐指数
3
解决办法
6万
查看次数

共享Web工作人员是否在单页重新加载,链接导航中持续存在

共享Web Workers旨在允许来自同一站点(源)的多个页面共享单个Web Worker.

但是,如果您只有一个窗口/选项卡并且您导航到同一站点上的另一个页面,那么我不清楚规范(或其他有关共享工作者的教程和信息)共享工作者是否会持久存在.

这对于来自共享工作者的WebSocket连接的情况最有用,该连接在网站导航时保持连接.例如,想象一下即使在网站导航时也会持续存在的股票代码或聊天区域(无需重新连接WebSocket).

javascript html5 multithreading web-worker websocket

22
推荐指数
3
解决办法
1万
查看次数

跨域iframe通信

我在页面上创建了一个iframe,并且页面的域名被明确设置为"xyz.com",但iframe的域名默认为"dev.xyz.com",这是我正在开发的实际域名.

问题是,当我尝试通过iframe.contentWindow.document访问iframe时,由于域的不同而失败.

我已经尝试将iframe的src设置为一个带有document.domain ='xyz.com'的文件,但这似乎没有做到这一点......

有任何想法吗?

javascript iframe cross-domain

15
推荐指数
2
解决办法
3万
查看次数

使用JavaScript在窗口/标签之间进行通信

如何在同一个域上有两个选项卡(或窗口)能够相互通信而无需另一个窗口实例.

编辑:为什么在另一个问题之前被问到这个标记为重复?

javascript windows communication cross-browser

6
推荐指数
2
解决办法
7407
查看次数

localStorage eventHandler不会被调用

这是我的代码:

<script type="text/javascript">
    function getLocalStorage() {
        try {
            if (!! window.localStorage) return window.localStorage;
        } catch(e) {
            return undefined;
        }
    }

    function getAddEventListener() {
        try {
            if( !! window.addEventListener ) return window.addEventListener;
        } catch(e) {
            return undefined;
        }
    }

    function eventHandler(e) {
        alert("here we are = " + e.storageArea.traveler);
    }       

    function testStorage() {    
        var db = getLocalStorage();
        var addEL = getAddEventListener();

        if(addEL) {
          addEL('storage', eventHandler, false);
        } else {
            alert('This browser does not support event listeners');
        }

        db.setItem('traveler', 'Bill');
        db.setItem('destination', 'Ventura'); …
Run Code Online (Sandbox Code Playgroud)

html html5

6
推荐指数
1
解决办法
6830
查看次数

窗口卸载事件的本地存储

我正在使用本地存储来存储一些数据:用户发出ajax请求以获取信息,我将结果存储在存储中,以便下次他请求相同的信息时,我首先查看存储以查看它是否存在.

现在我意识到将数据保存在内存中的对象实际上更有效,并在需要时循环,然后循环遍历本地存储.因此,当我将一些数据从本地存储移动到内存中对象时,我想知道是否可以可靠地使用window.unload事件将该缓存对象的内容写入磁盘上的本地存储,然后检索它回来使用onload事件?

谢谢.

javascript local-storage

5
推荐指数
1
解决办法
1797
查看次数