js跨域是個討論很多的話題。iframe跨域訪問也被研究的很透了。
一般分兩種情況:
一、 是同主域下面,不同子域之間的跨域;
同主域,不同子域跨域,設定相同的document.domian就可以解決;
父頁訪問子頁,可以document.getelementbyid("myframe").contentwindow.document來訪問iframe頁面的內容;如果支援contentdocument也可以直接document.getelementbyid("myframe").contentdocument訪問子頁面內容;
子頁訪問父頁,可以parent.js全域性屬性
二、 是不同主域跨域;
前提,www.a.com下a.html,a.html內iframe呼叫了www.b.com下的b.html,b.html下iframe呼叫了www.a.com下的c.html
b.html是不無法直接訪問a.html的物件,因為涉及到跨域,但可以訪問parent,同樣c.html的parent可以訪問b.html。c.html和a.html同域,是可以訪問a下的物件的。parent.parent.js物件!
看下面例項:
a.html
無標題文件
functiondosome(text){
document.getelementbyid("gettext").innerhtml=decodeuri(text);
b.html
無標題文件
vartext =document.getelementbyid('ct').innerhtml;
document.getelementbyid('myfarme').src=""+encodeuri(text);
c.html
無標題文件
vartext =window.location.href.split('=')[1]
console.log(parent.parent)
parent.parent.dosome(text);
多層iframe訪問
注意 一 等iframe裡面的檔案載入完才可以訪問 二 contentdocument ie6 7不支援 所以採用了contentwindow.document。如果不相容這兩個可以用 document.getelementbyid myframe contentdocument.getelemen...
多層iframe訪問
注意 一 等iframe裡面的檔案載入完才可以訪問 二 contentdocument ie6 7不支援 所以採用了contentwindow.document。如果不相容這兩個可以用 document.getelementbyid myframe contentdocument.getelemen...
使用gulp外掛程式進行跨越訪問
在進行前端專案的開發中,如果要進行跨域訪問,而不想在本地配置nginx 時,可以使用gulp 的gulp connect 和gulp connect proxy 兩個外掛程式,完成本地的跨域訪問 var proxy require gulp connect proxy var connect req...