回答
我能想到的唯一方法就是使用XHR。每個窗口/選項卡都與服務器進行通信,而服務器又與其他窗口進行通信,這幾乎與gmail聊天工作方式相同。除了你在同一個客戶端上有2個窗口,而不是2個客戶端上的1個窗口。
我找到了一種方法,我可以在每個頁面上使用LocalConnection製作兩個Flash動畫,以使用externalinterface在另一個頁面上調用JavaScript。
把這個在AS3 SWF,這是接收器:
import flash.external.ExternalInterface;
import flash.net.LocalConnection;
var mLocalConnection:LocalConnection;
mLocalConnection = new LocalConnection();
mLocalConnection.connect("xivioview");
mLocalConnection.client=this;
function recieveText(textRecieved):void {
ExternalInterface.call(textRecieved);
};
和發送器SWF:
import flash.external.ExternalInterface;
import flash.net.LocalConnection;
function sendtoview(con,val):String {
//create local connection for sending text
var sending_lc:LocalConnection;
sending_lc = new LocalConnection();
sending_lc.send("xivioview", "recieveText", val);
return "kk"
}
ExternalInterface.addCallback("sendtoview", sendtoview);
這是設置爲單向的,並且使用它的JavaScript :
document.getElementById("youembeddedobject").sendtoview("xivioview","alert('Hai!')")
這將在接收器的選項卡中執行該JavaScript代碼,但它不會執行,直到您回到該標籤(我已經問了一個問題爲什麼,並且沒有任何反應)
有關您如何做到這一點的任何鏈接?是否支持跨瀏覽器? – 2011-03-01 01:34:22
我只想有一個JavaScript在頁面加載執行,將連續輪詢(window.setInterval)的sessionStore的一個標記,有人給我發一個消息,然後宣讀了該消息sessionStore,然後做任何需要的。
即使在HTML5之前,如果文檔具有相同的來源,也支持在不同的JavaScript執行上下文之間進行通信。如果不是,或者您沒有提及其他Window
對象,則可以使用隨HTML5引入的新的postMessage API。我在這stackoverflow answer中詳細闡述了兩種方法。
- 1. 窗口之間的jQuery/JavaScript通信?
- 2. 在JavaScript和Servlet之間進行通信
- 3. 在iframe和父窗口之間進行通信?
- 4. 在兩個窗口之間進行通信Qt5
- 5. 如何在兩個瀏覽器窗口之間進行通信?
- 6. 如何在2個qml窗口之間進行通信
- 7. 如何在兩個窗口之間進行通信?
- 8. 使用WCF在兩個Windows窗體之間進行通信?
- 9. 如何使用Qt C++在QDialog窗口和QMainWindow之間進行通信
- 10. 如何在MATLAB和Visual C++窗口窗體之間進行通信?
- 11. 進程間通信選項
- 12. 不同的選項卡之間進行導航,使用iframe的
- 13. 按Visual Studio中的文件類型進行排序在選項卡窗口之間進行快速切換
- 14. PyQT4 - 兩個窗口之間的通信
- 15. 通過接口在Flex模塊之間進行通信
- 16. 使用信用卡進行窗口天藍色驗證
- 17. 通過事件C#窗口應用程序在MDI窗體和SDI窗體之間進行通信
- 18. 窗口上的進程間通信
- 19. 使用信號在類之間進行通信
- 20. 使用命名管道在窗口上的unicode進程和非unicode進程之間進行通信
- 21. 如何使用FIFO在python子進程之間進行通信
- 22. Mozilla插件開發 - 在具有不同域的窗口之間進行通信
- 23. 如何在瀏覽器標籤頁/窗口之間進行通信?
- 24. 在同一個域上的不同窗口之間進行通信
- 25. 如何在2個瀏覽器標籤頁/窗口之間進行通信?
- 26. 如何在PyQt中的兩個窗口之間進行通信或切換?
- 27. UIWebView Javascript窗口到窗口通信
- 28. Javascript窗口選項
- 29. 在Java類之間進行通信
- 30. 如何在ViewModels之間進行通信?
+1有趣。我認爲Chrome的新「可安裝應用程序」支持這一點。 – JCOC611 2011-02-13 23:20:20
有關該主題的一些消息: http://stackoverflow.com/questions/19125823/how-is-it-possible-to-share-single-js-resource-between-browser-tabs/19165781#19165781 BNC連接器仍然是一種選擇,一個新選項是使用localStorage的intercom.js,另一個選項是使用共享webworkers。 – inf3rno 2013-10-03 23:05:14