iframe交互问题,浏览器存在差异
搞前端的都知道,iframe存在跨域訪問的問題。
在不同瀏覽器中,google瀏覽器出于安全考慮,對于file協議有安全限制,無法用js訪問本地資源。
為了說明不同瀏覽器間iframe訪問的差異,我將舉例說明。
huangbaokang.html
<!DOCTYPE html> <html lang="en"> <head><meta charset="UTF-8"><title>iframe交互問題</title> </head> <body><script type="text/javascript">function modify(){var iframe_doc = document.getElementById("ifr_id").contentDocument;iframe_doc.getElementById("child_id").innerHTML = "張露露";}</script><button onclick="modify()">改變iframe的值</button><iframe id="ifr_id"src="zhanglulu.html"></iframe> </body> </html>代碼比較簡單,body里只有一個button按鈕和iframe元素,通過點擊按鈕改變內嵌iframe里面的值。
zhanglulu.html
<!DOCTYPE html> <html lang="en"> <head><meta charset="UTF-8"><title>內嵌頁面</title> </head> <body><label id="child_id">黃寶康</label> </body> </html>訪問huangbaokang.html在谷歌瀏覽器中,頁面如下:
點擊按鈕,在谷歌瀏覽器控制臺報了一個錯,iframe中的值并沒有改成張露露:
Uncaught DOMException: Failed to read the ‘contentDocument’ property from ‘HTMLIFrameElement’: Blocked a frame with origin “null” from accessing a cross-origin frame.
at modify (file:///C:/Users/yangfeng/Desktop/huangbaokang.html:10:55)
at HTMLButtonElement.onclick (file:///C:/Users/yangfeng/Desktop/huangbaokang.html:14:30)
同樣在360瀏覽器也報了這個錯。
在IE9瀏覽器中,卻可以改變內嵌iframe中的值,而且瀏覽器控制臺中沒有報錯信息。
推廣鏈接
新款廚房臥室櫥柜貼紙,大量有貨,支持分銷代銷,分享此內容到朋友圈,憑截圖找賣家免費領取保溫杯一個(包郵),活動真實有效,每天只有前60個名額,發貨領取獎品請掃碼聯系店主。
總結
以上是生活随笔為你收集整理的iframe交互问题,浏览器存在差异的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 产品管理者人才模型详解
- 下一篇: 了解浏览器cookie以及浏览器缓存