2010-04-10 38 views
4

我有兩個瀏覽器選項卡tab1和tab2。跨瀏覽器標籤調用JavaScript函數

我有一個函數調用tab1中的執行,我想從tab2中的頁面調用。

這是可能的,如果是的話如何?

+0

您現在可以使用localStorage存儲事件或使用該事件的庫來執行此操作。 – jcubic 2017-08-19 19:59:28

回答

16

JavaScript 不能在瀏覽器中做交叉製表腳本(這是一種安全風險)。

然而,如果第二片是從window.open()電話開通,並且瀏覽器設置被設置,使得新的彈出窗口在新標籤中打開,而不是 - 然後,「TAB1」可以談「TAB2」

第一個標籤/窗口稱爲opener,因此新的標籤可以調用使用此格式的開啓器功能:

opener.doSomething(); 

同樣,開啓者可以通過使用它在創建彈出窗口時創建的變量來調用新選項卡/彈出窗口上的函數。

var myPopup = window.open(url, name, features); 
myPopup.doStuffOnPopup(); 
0

你應該表現出你的HTML擺在首位,但我相信你的標籤有一個鏈接,你可以這樣做:

<a href="some-path" id="tab2">Tab 2</a> 

JQuery的:

$('#tab2').click(function(){ 
    // your function code here 

    // prevent default action 
    return false; 
}) 
+0

我認爲他的意思是真正的標籤,而不是僞標籤 – 2015-10-21 07:22:54

0

我真的不能明白你的意思是什麼問題。

但是,您可以將JavaScript函數引用作爲參數傳遞給其他函數(請注意對象執行上下文)。

所以在初始化「tab2」時,您可以將「tab1」的函數引用執行發送到「tab2」。

本來可以用一個例子給出一個更明確的答案,如果你的問題更清楚了。

+0

我的基本quetiosn是如何在其他窗口或其他標籤中調用fucation? – kumar 2010-04-10 19:28:56

+1

我不知道有辦法做到這一點! 不是JavaScript窗口對象是我們掌握的最父對象嗎?你如何在另一個窗口訪問代碼?! (根據我的理解,違反了瀏覽器工作原理) 您能解釋一下您的需求嗎?我可能會提出一種解決方法。 – 2010-04-10 19:42:04

相關問題