簡體   English   中英

當父來自不同的域時,在另一個iframe中執行javascript函數

[英]execute javascript function in a another iframe when parent is from different domain

頁面A.com有2個iframes B.com/page1B.com/page2 這是A.com的代碼:

<html><body>
    <iframe src="b.com/page1" name="iframe1" id="iframe1">
    <iframe src="b.com/page2">
</body></html>

我想從B.com/page2B.com/page1上執行js功能。 當父來自同一個域而不是跨域方案時,以下兩個示例都很有效:

parent.window.frames['iframe1'].SomeFunction(args);

要么

parent.document.getElementById('iframe1').contentWindow.SomeFunction(args);

有什么辦法嗎?

代替

parent.window.frames['iframe1'].SomeFunction(args);

采用

parent.frames['iframe1'].SomeFunction(args);

您可以遍歷可以引用的任何窗口的frames集合,但在這種情況下,您嘗試遍歷parent的遞歸window屬性(即窗口)。 這是不允許的。

不,瀏覽器不允許根本不在同一域的iframe之間進行交互。

正如Aaron已經告訴過你的那樣,瀏覽器不允許這樣做,但有很多方法可以解決它。 你需要創建一個小黑客。 Eugene Gladyshev 在他的博客上有一篇文章

正如Aaron所說,不允許在iframe之間進行交互,但你應該看一下easyXDM,它有助於javascript中的跨域通信:

http://easyxdm.net/wp/

以下是您可能正在尋找的示例:

http://easyxdm.net/wp/2010/03/17/sending-and-receiving-messages/

暫無
暫無

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

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