![](/img/trans.png)
[英]Get javascript variable in an iframe from parent window in a different domain
[英]Accessing JavaScript variable in an iframe, from the parent window on same domain
我對JavaScript很新,我試圖從嵌入式iframe中獲取變量的值。 我已經采取了基本的測試,以確保我正確的方法...
我嘗試了常見的建議,一切都返回'undefined'。 我想在onclick事件中使用該變量。
在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>
順便說一句,既然你的問題被標記為jquery,我建議你寫一些類似的東西:
<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.