JS跨域--window.name

window.name跨域

在頁面在瀏覽器端展示的時候见秤,我們總能在控制臺拿到一個全局變量window,該變量有一個name屬性谨娜,其有以下 特征:
1)每個窗口都有獨立的window.name與之對應(yīng);
2)在一個窗口的生命周期中(被關(guān)閉前),窗口載入的所有頁面同時共享一個window.name慈缔,每個頁面對window.name都有讀寫的權(quán)限;
3)window.name一直存在與當(dāng)前窗口后众,即使是有新的頁面載入也不會改變window.name的值胀糜;
4)window.name可以存儲不超過2M的數(shù)據(jù),數(shù)據(jù)格式按需自定義蒂誉。

下面我們就驗證一下同一個窗口下教藻,頁面重新載入,window.name仍然不變

<script>
    // 這里是要傳輸?shù)臄?shù)據(jù)右锨,大小一般為2M括堤,IE和firefox下可以大至32M左右
    // 數(shù)據(jù)格式可以自定義,如json绍移、字符串
    window.name = "這是a頁面的內(nèi)容"; 
    setTimeout(function(){
        window.location.href= b.html;
        console.log(window.name);  //"這是a頁面的內(nèi)容"
    },2000);
</script>

有時候我們的需求是在https://localhost/a.html頁面內(nèi)悄窃,獲得"https://xxx.github.io/xxx/"上的數(shù)據(jù),并且頁面不能進行刷新蹂窖。

對于這種需求轧抗,我們不能通過window.location.href更新頁面來獲得數(shù)據(jù),我們可以用一個隱藏的iframe作為中間的代理瞬测,iframe的src為"https://xxx.github.io/xxx/"横媚,在iframe頁面加載完畢的時候,我們再讓iframe與當(dāng)前頁面屬于同一個域下月趟,我們就可以拿到window.name了灯蝴。

<script>
    function load () {
        var iframe = document.getElementById('iframe');
        iframe.onload = function () {
            var window = iframe .contentWindow;
            console.log(window.name);
        }
        iframe.src = 'about:blank'; //讓url地址改變,與當(dāng)前頁面同源,可以任意寫孝宗,保持同源就好
    }
</script>
<iframe id="iframe" src="https://xxx.github.io/xxx/" onload="load()"></iframe>

上面的代碼就是window.name的原理演示代碼穷躁,下面我們封裝一個完整的跨域,包括動態(tài)的創(chuàng)建iframe因妇,獲取數(shù)據(jù)后銷毀代理的iframe问潭。

<script type="text/javascript">
    var boo = false;
    var iframe = document.createElement('iframe');
    var loadData = function() {
        if (boo) {
            var data = iframe.contentWindow.name;    //獲取window.name
            console.log(data); 
            //銷毀數(shù)據(jù)   
            iframe.contentWindow.document.write('');
            iframe.contentWindow.close();
            document.body.removeChild(iframe);
        } else {
            boo = true;
            iframe.contentWindow.location = "b.html";    // 設(shè)置的代理文件,iframe重新載入
        }  
    };
    iframe.src = 'https://xxx.github.io/xxx';
    if (iframe.attachEvent) {
        iframe.attachEvent('onload', loadData);
    } else {
        iframe.onload  = loadData;
    }
    document.body.appendChild(iframe);
</script>

window.name跨域也就這些了猿诸。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市睦授,隨后出現(xiàn)的幾起案子两芳,更是在濱河造成了極大的恐慌,老刑警劉巖去枷,帶你破解...
    沈念sama閱讀 218,546評論 6 507
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件怖辆,死亡現(xiàn)場離奇詭異,居然都是意外死亡删顶,警方通過查閱死者的電腦和手機竖螃,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,224評論 3 395
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來逗余,“玉大人特咆,你說我怎么就攤上這事÷剂唬” “怎么了腻格?”我有些...
    開封第一講書人閱讀 164,911評論 0 354
  • 文/不壞的土叔 我叫張陵,是天一觀的道長啥繁。 經(jīng)常有香客問我菜职,道長,這世上最難降的妖魔是什么旗闽? 我笑而不...
    開封第一講書人閱讀 58,737評論 1 294
  • 正文 為了忘掉前任酬核,我火速辦了婚禮,結(jié)果婚禮上适室,老公的妹妹穿的比我還像新娘嫡意。我一直安慰自己,他們只是感情好捣辆,可當(dāng)我...
    茶點故事閱讀 67,753評論 6 392
  • 文/花漫 我一把揭開白布蔬螟。 她就那樣靜靜地躺著,像睡著了一般汽畴。 火紅的嫁衣襯著肌膚如雪促煮。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 51,598評論 1 305
  • 那天整袁,我揣著相機與錄音,去河邊找鬼佑吝。 笑死坐昙,一個胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的芋忿。 我是一名探鬼主播炸客,決...
    沈念sama閱讀 40,338評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼疾棵,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了痹仙?” 一聲冷哼從身側(cè)響起是尔,我...
    開封第一講書人閱讀 39,249評論 0 276
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎开仰,沒想到半個月后拟枚,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 45,696評論 1 314
  • 正文 獨居荒郊野嶺守林人離奇死亡众弓,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,888評論 3 336
  • 正文 我和宋清朗相戀三年恩溅,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片谓娃。...
    茶點故事閱讀 40,013評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡脚乡,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出滨达,到底是詐尸還是另有隱情奶稠,我是刑警寧澤,帶...
    沈念sama閱讀 35,731評論 5 346
  • 正文 年R本政府宣布捡遍,位于F島的核電站锌订,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏稽莉。R本人自食惡果不足惜瀑志,卻給世界環(huán)境...
    茶點故事閱讀 41,348評論 3 330
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望污秆。 院中可真熱鬧劈猪,春花似錦、人聲如沸良拼。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,929評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽庸推。三九已至常侦,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間贬媒,已是汗流浹背聋亡。 一陣腳步聲響...
    開封第一講書人閱讀 33,048評論 1 270
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留际乘,地道東北人坡倔。 一個月前我還...
    沈念sama閱讀 48,203評論 3 370
  • 正文 我出身青樓,卻偏偏與公主長得像,于是被迫代替她去往敵國和親罪塔。 傳聞我的和親對象是個殘疾皇子投蝉,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 44,960評論 2 355