相关疑难解决方法(0)

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

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

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

有任何想法吗?谢谢

javascript browser

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

浏览器会话存储.标签之间共享?

我在我的网站中有一些值,我希望在浏览器关闭时清除,我选择sessionStorage来存储该值,当选项卡关闭时清除它并在用户按f5时保持存储,但如果用户在不同的选项卡中打开一些链接这个值不可用.我如何在我的应用程序之间共享所有浏览器选项卡之间的sessionStorage值?

用例:将值放在某个存储中,在所有浏览器选项卡中保持该值可访问,如果所有选项卡都关闭则清除它.

if (!sessionStorage.getItem(key)) {
    sessionStorage.setItem(key, defaultValue)
}
Run Code Online (Sandbox Code Playgroud)

javascript cross-browser session-storage

123
推荐指数
5
解决办法
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万
查看次数

Javascript:在标签之间共享数据

在浏览器中打开选项卡之间共享数据的最佳方法是什么?

javascript

31
推荐指数
4
解决办法
5万
查看次数

当用户在其中一个用户注销时,用户将如何从所有打开的选项卡中自动注销

我创建了一个登录页面,其中包含许多其他页面,其中包含用于检查会话的代码.如果用户没有会话,则所有页面都将重新加载并重定向到注销页面.此脚本每三秒调用一次.

我写的代码工作正常,但我想以另一种方式实现它.当用户注销时,所有打开的选项卡都会重新加载/刷新,从而导致用户注销.那可能吗?

sessioncheck.php:

<?php
session_start();
if(isset($_SESSION['username']) && $_SESSION['username'] != ''){
    echo "true";
}
else {
    echo "false";
}
?>
Run Code Online (Sandbox Code Playgroud)

此代码位于每个页脚中:

<script>
    function gettatus(){
        $.get("sessioncheck.php", function(data){
            if(!data) {
                window.location = "logout.php";
            }
            setTimeout(function(){
                checkLoginStatus();
            }, 3000);
        });
    }
    $(document).ready(function(){
        gettatus();
    });
</script>
Run Code Online (Sandbox Code Playgroud)

javascript php ajax jquery

23
推荐指数
1
解决办法
2万
查看次数

使用JavaScript向所有打开的窗口/选项卡发送消息

我听说HTML5有window.postMessage(),但似乎需要在窗口(或选项卡,整个问题)上有一个句柄,你要发布消息.如果我要向所有打开的窗口广播怎么办?这可能吗?

(我想要做的就是警告其他的窗口,没有任何服务器往返当用户做一些事情在影响别人一个窗口,使他们能够更新他们的内容.然而,虽然一些窗口可能从现有的开放--allowing我拦截和存储引用他们 - 一些新鲜的窗口可以由用户手动打开,然后选择书签或URL输入在这种情况下,似乎没有被拦截的方式和存储引用.)

javascript html5 cross-window-scripting

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

使用window.name在同一选项卡中打开电子邮件中的链接

我正在开发一个网站,用户可以在此网站上更改必须确认的设置才能生效.

确认是通过我通过电子邮件发送的链接完成的.在网站的HTML中我使用这个小片段:

<script type="text/javascript">window.name="mysite";</script>
Run Code Online (Sandbox Code Playgroud)

在我使用的HTML电子邮件中

<a href="..." target="mysite">Click me</a>
Run Code Online (Sandbox Code Playgroud)

但Chrome总是打开新标签,而不是一次性打开它们.

这是偶数还是由于某些原因被禁止?

html hyperlink target

19
推荐指数
2
解决办法
2113
查看次数

如何知道浏览器选项卡是否已使用Javascript打开?

如何知道或检查两个浏览器选项卡是否已打开,如果这些选项卡是打开的,用户将收到一个警告框或消息框,说"网址已经打开",类似于纯/原生JavaScript?此浏览器选项卡包含一个外部网站,我没有任何权限来操纵或更改它.谢谢

示例网址

yahoo.com and google.com
Run Code Online (Sandbox Code Playgroud)

如果已经打开yahoo.com和google.com的标签,我想提醒用户

我想使用tabCreate打开这样的URL:

tabCreate("http://maps.google.com/", "tabMapsPermanentAddress");
mean to open a new tab, it is use in creating chrome extension
Run Code Online (Sandbox Code Playgroud)

javascript external browser-tab external-links

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

我可以使用一个HTML5应用程序控制两个浏览器窗口吗?

我希望我的HTML5应用程序能够绘制到两个不同的屏幕上.这(我认为)意味着我需要两个不同的浏览器窗口,每个屏幕一个.这可能吗?看来我真的必须将同一个应用程序加载到两个窗口中,并且不知何故让窗口相互通信.我找不到如何实现这一目标的例子.我怎样才能实现呢?

为了更加精彩:可能没有涉及服务器,只是从文件系统本地提供的应用程序.

html javascript multiple-monitors

13
推荐指数
1
解决办法
9925
查看次数

跨多个选项卡共享单个 WebSocket 连接的最佳/正确方法

如何在多个浏览器选项卡之间共享单个 WebSocket 连接?

我知道有多个建议 SharedWorker 的问题/帖子。然而,由于 SharedWorker 的采用率很低(根据Can I use在撰写本文时的数据,全球范围内只有 35%),这并不是一个可行的解决方案,更不用说它已经在 Safari 中被删除了。

我已经使用 SerivceWorker 实现了一个工作版本,它具有一些 SharedWorker 的功能,可以跨选项卡共享单个连接。不幸的是,在测试过程中,我意识到 ServiceWorker 可以被浏览器杀死/停止,特别是当开发工具未打开时。我还知道一些解决方法可以防止这种行为,例如定期 ping ServiceWorker。我想请问是否有适当的方法来处理这个问题。

javascript websocket service-worker shared-worker

10
推荐指数
1
解决办法
2750
查看次数