簡體   English   中英

如何從iframe調用主窗口中的函數?

[英]How to call function in main window from iframe?

首先,我知道這個問題與其他問題重復。 但是我試圖從stackoverflow的許多問題中跟蹤許多樣本,但是沒有用。 我無法從iframe調用主窗口的功能,但是如果我使用frame標簽,那是可以的。

我嘗試過這樣。

主窗口:

<body>
<iframe src='test.html'></iframe>
<script>            
    var alertFunc = function(){
        window.alert("work!");
    }   
</script>
</body>

test.html

<body>
    <input type="button" onclick="window.parent.alertFunc();" value="Test" />
</body>

來自控制台的錯誤消息。

Unsafe JavaScript attempt to access frame with URL file:///C:/.../index.html from frame with URL file:///C:/.../test.html. Domains, protocols and ports must match.
 test.html:30
Uncaught TypeError: Cannot call method 'alertFunc' of undefined 

和許多與此類似的形式。

你有什么想法? 還是我做錯了什么?

好像您是直接從文件系統訪問文件一樣,如c:..... \\ page.html。

由於相同的原始策略而導致的錯誤,如果您將站點部署在tomcat或任何其他Web服務器中(而不是從本地文件系統訪問它),則假定兩個文件都來自相同的域空間,它應該可以工作。

如果主頁(帶有iframe)和iframe頁面位於同一目錄中,或者如果iframe頁面是主頁目錄的子目錄,則它將在FireFox中工作。

上面的方法不適用於chrome,您需要以--allow-file-access-from-files 標志啟動chrome

暫無
暫無

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

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