[英]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.