2011-11-28 67 views

回答

17

試試這個。我假設你的iFrame的ID是"targetFrame",你想要調用的對象是targetObject,它們也是同一個域。如果它們不是同一個域,我認爲如果IFRAME SRC不在同一產地/域作爲家長,你不得不限制

因爲各項─它是不可能的:

document.getElementById('targetFrame').contentWindow.targetObject 
+4

請注意,您必須在同一個域中才能訪問子窗口對象 –

4

(安全策略) https://developer.mozilla.org/en/Same_origin_policy_for_JavaScript

該策略計劃阻止訪問存儲在框架中的私有數據,例如CSRF令牌和其他私有數據,例如,如果您構建了帶有bank.com iframe的html頁面 然後當人們進入你的網站,如果他們登錄到bank.com thei r私人數據將被存儲在iframe中,因此,同源策略將阻止不同的來源通過iframe訪問彼此的數據。

2

您還可以使用父窗口對象訪問子iframe的對象。

alert(window.frames[0].variable_name); 

它將顯示來自第一個iFrame的變量variable_name的值。幀列表的索引可用於訪問跨幀的變量值。

+0

ES6/ES2015更新:僅當variable_name被聲明爲var變量名時不適用變量名;'。 [MDN](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Statements/let):「'let'不像'var',不會在全局對象上創建一個屬性「。 – cxw