簡體   English   中英

從同一域上的父窗口訪問iframe中的JavaScript變量

[英]Accessing JavaScript variable in an iframe, from the parent window on same domain

我對JavaScript很新,我試圖從嵌入式iframe中獲取變量的值。 我已經采取了基本的測試,以確保我正確的方法...

我嘗試了常見的建議,一切都返回'undefined'。 我想在onc​​lick事件中使用該變量。

在iframe內容中,我刪除了所有內容,只是為了進行測試而已:

<script>
var test = "test";
</script>

在父窗口中我做了這個:

<iframe src="iframe.html" id="iframe" width="200" height="100"></iframe>

<script>
var myVar = window.frames[0].window.test;
</script>
<a href="#" onclick='alert(myVar)' id="link">Click</a>

我已經嘗試了這里建議的選項: 從嵌入式iframe中獲取全局變量

我所做的一切都是未定義的......我在做一些根本錯誤的事情嗎?

提前致謝..

<iframe>仍在加載時,您已經在執行腳本,因此它的test undefined 要么等待iframe的load事件,要么在單擊時獲取變量:

<iframe src="iframe.html" id="iframe" width="200" height="100"></iframe>

<script>
var myFrame = window.frames[0].window;
</script>
<a href="#" onclick='alert(myFrame.test)' id="link">Click</a>

在訪問myVar之前,您顯然沒有等待加載幀的內容。 當你這樣做時,框架中的<script>元素尚未被提取或執行。

嘗試延遲變量賦值,直到幀的內容完全加載為止:

<iframe src="iframe.html" id="iframe" onload="frameLoaded();" width="200" height="100"></iframe>

<script>
    var myVar;
    function frameLoaded() {
        myVar = window.frames[0].window.test;
    }
</script>

順便說一句,既然你的問題被標記為我建議你寫一些類似的東西:

<iframe src="iframe.html" id="iframe" width="200" height="100"></iframe>

<script>
    $("#iframe").on("load", function() {
        var myVar = this.window.test;
        $("#link").on("click", function() {
            alert(myVar);
        });
    });
</script>

試着用這個

 <iframe src="iframe.html" id="iframe" onload="loader()" width="200" height="100">    </iframe>

<script>
    var myVar
    function loader(){
        myVar = window.frames[0].window.test;
    }
</script>
<a href="#" onclick='alert(myVar)' id="link">Click</a>

在旁邊的解決方案中,我只想指出當你使用jquery onload事件處理函數並且你想要訪問jquery“this”對象時,你必須使用$(this.attr)表示法。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM