我有一個場景,其中有一個頁面,其中包含<script>
標記和一些全局JavaScript變量。我也有該頁面內的iframe,我想要在iframe中訪問頁面的全局JavaScript變量。在頁面中共享具有iframe的頁面的全局JavaScript變量
是否有可能?如果是的話,我該怎麼做?
我有一個場景,其中有一個頁面,其中包含<script>
標記和一些全局JavaScript變量。我也有該頁面內的iframe,我想要在iframe中訪問頁面的全局JavaScript變量。在頁面中共享具有iframe的頁面的全局JavaScript變量
是否有可能?如果是的話,我該怎麼做?
通過在iframe的腳本中調用parent.your_var_name很容易。
一個條件:兩個頁面(主和iframe)必須在同一個域上。
主頁:
<script>
var my_var = 'hello world!';
</script>
IFRAME
<script>
function some_fn(){
alert(parent.my_var); //helo world!
}
</script>
謝謝,剛剛意識到我的javascript有多糟糕:p – Ankit
不可能的,如果 iframe和主文檔不在同一個域(由於交叉域安全策略)。
要繞過此限制,您可以使用跨域消息。
可能if iframe主文檔位於同一個域中,則可以訪問其全局變量。有屬於iframe的窗口對象或主頁面的對象。
這裏是從主文件(或一個iframe)訪問在同一域中的IFRAME可變MYVAR的代碼:
document.getElementById('iframeid').contentWindow['myvar'];
感謝您的時間!順便說一下,我想訪問iframe上的頁面變量,你告訴我相反。 – Ankit
看到相反的情況也非常有用。 – johnbakers
您能否在這方面澄清「跨域消息傳遞」? –
提供清晰的概念一些示例代碼.. –