如何用opener hack方式實(shí)現(xiàn)IE6,7完美跨域
分享 2012.03.23 瀏覽次數(shù):21900次
有時(shí)我們做一個(gè)項(xiàng)目時(shí),有需要跨域請(qǐng)求和處理一些大數(shù)據(jù)量得數(shù)據(jù),對(duì)于服務(wù)端提交的數(shù)據(jù)非常的之大,get的URL長度限制滿足不了需求,又由于跨域的影響,一直很頭痛數(shù)據(jù)傳輸?shù)膯栴}。于是乎,上網(wǎng)搜了搜一些跨域的解決方案,無非了iframe嵌iframe,通過window.name或者h(yuǎn)ash,做跳板,都受到url長度的限制,不是很理想。我們都知道在HTML5中,提供了一種postMessage的消息機(jī)制,可以在不同域的頁面上,互相通過window.postMessage(datastring,’limitDomain’)的方式傳遞消息。在需要觸發(fā)的頁面注冊(cè)onMessage事件,event的data屬性就是傳遞datastring文本。再配合老道的JSON.parse就可以完美的傳遞json格式的對(duì)象了。可惜的是目前PostMessage只在IE8,F(xiàn)F和Chrome現(xiàn)版本提供了實(shí)現(xiàn)。對(duì)于老版本的IE6,7沒有提供實(shí)現(xiàn)。
于是在google搜索的時(shí)候,無意中發(fā)現(xiàn)某高人的Blog提供了一種稱之為IE6,7 opener hack的方式實(shí)現(xiàn)跨域,據(jù)說是google的工程師率先發(fā)現(xiàn)的這個(gè)bug,fackbook的登陸頁面就是利用了這個(gè)bug實(shí)現(xiàn)了postMessage的跨域。
可惜,google了半天,詳細(xì)資料基本找不到,也沒有找到一個(gè)具體的例子,于是自己搗鼓了一下,寫了個(gè)例子,放上來。
下面我們來看下,如何利用這個(gè)bug的例子
hosts配置
1: 127.0.0.1 www.a.com
2: 127.0.0.1 www.b.com
test.htm
1:<html>
2:<body>
3:<iframeid="a"src="http://www.b.com/test1.htm">iframe>
4:<script>
1:
2:var i=document.getElementById('a');
3: i.contentWindow.opener={
4: dd:function(str){
5:var div=document.createElement('div');
6: document.body.appendChild(div);
7: div.innerHTML=str;
8: }
9: }
10: setTimeout(function(){
11: opener.bb('bbbbbbb');
12: },300)
13:
script>
5:body>
6:html>
test1.htm
1:<html>
2:<body>
3:
4:<script>
1:
2: window.opener.dd('aaaaaaaaa');
3: parent.opener={
4: bb:function(str){
5:var div=document.createElement('div');
6: document.body.appendChild(div);
7: div.innerHTML=str;
8: }
9: }
script>
5:body>
6:
7:html>
我們可以看到,在IE6,7下,只要重置了window對(duì)象的opener為一個(gè){}對(duì)象,在父頁面設(shè)置了iframe的window.opener為一個(gè){}之后,在iframe里面就可以通過opener調(diào)用parent的方法,在iframe重置parent.opener為一個(gè){}對(duì)象之后,在parent就可以調(diào)用iframe的方法。
*還有一種說法是可以設(shè)置opener為function(){},通過new opener()來調(diào)用
總結(jié),通過IE6,7的hack,我們可以比較完美的實(shí)現(xiàn)postMessage在各大主流瀏覽器的兼容,以后跨域又多了一項(xiàng)利器。不過比較遺憾的事,重置opener之后,對(duì)于window.open打開的窗口,就不能很好的操作了。
杭州網(wǎng)站建設(shè) 相關(guān)閱讀:Chrome瀏覽器全球份額首次超過IE 但僅保持一天
-
杭州網(wǎng)站制作的時(shí)間周期:不同類型項(xiàng)目需要多久
日期:2026-02-25瀏覽次數(shù):1436次
-
杭州網(wǎng)站建設(shè)公司:集團(tuán)網(wǎng)站建設(shè)中的SEO關(guān)鍵切入點(diǎn)
日期:2026-02-25瀏覽次數(shù):1468次
-
杭州高端網(wǎng)站定制:醫(yī)院門戶網(wǎng)站制作的三種主流方式
日期:2026-02-25瀏覽次數(shù):1437次
-
杭州高端網(wǎng)站定制:在行業(yè)洞察與用戶聲音之間尋找平衡
日期:2026-02-06瀏覽次數(shù):3637次
-
品牌網(wǎng)站制作有幾大類別呢?——杭州網(wǎng)站制作公司的專業(yè)解析
日期:2026-02-06瀏覽次數(shù):3554次
相關(guān)新聞
整合同類新聞,相關(guān)新聞一手掌握
-
梅州有哪些比較專業(yè)的網(wǎng)站推廣外包公司?
日期:2023-02-08瀏覽次數(shù):14751次
-
梅州網(wǎng)站建設(shè)公司哪家口碑最好?
日期:2023-02-08瀏覽次數(shù):14981次
-
梅州網(wǎng)站模板開發(fā)好不好,梅州網(wǎng)站模板搭建
日期:2023-02-08瀏覽次數(shù):15392次
-
梅州網(wǎng)站模板開發(fā)找誰好?
日期:2023-02-08瀏覽次數(shù):14329次
最新新聞
與互聯(lián)網(wǎng)同行,實(shí)時(shí)掌握網(wǎng)建行業(yè)最新動(dòng)態(tài)
-
分享CSDN【杭州網(wǎng)站建設(shè)】移動(dòng)開發(fā)路線之產(chǎn)品設(shè)計(jì)
日期:2011-07-18瀏覽次數(shù):20672次
-
怎樣做出高訪問量的企業(yè)網(wǎng)站 方法很簡單
日期:2016-10-12瀏覽次數(shù):18555次
-
SEO網(wǎng)站優(yōu)化是否應(yīng)該堆砌關(guān)鍵詞?
日期:2020-04-09瀏覽次數(shù):19239次
-
如何讓杭州高端網(wǎng)站制作更受歡迎?
日期:2021-07-14瀏覽次數(shù):17210次
-
咸寧網(wǎng)站建設(shè)過程中需要注意的六要素
日期:2023-02-10瀏覽次數(shù):14725次
隨機(jī)新聞
新聞新動(dòng)態(tài),您需要的新聞管家
洞悉市場趨勢(shì)演變讓傳播回歸社會(huì)
免費(fèi)獲取網(wǎng)站建設(shè)與網(wǎng)絡(luò)推廣方案報(bào)價(jià)
-
關(guān)于我們
杭州帷拓科技有限公司,是一家新型的全案網(wǎng)絡(luò)開發(fā)公司,作為以互聯(lián)網(wǎng)高端網(wǎng)站建設(shè)、APP開發(fā)、小程序開發(fā)為核心的專業(yè)網(wǎng)絡(luò)技術(shù)服務(wù)供應(yīng)商,帷拓科技致力于全面分析市場環(huán)境、衡量與預(yù)測(cè)市場需求、整合區(qū)別于行業(yè)競爭對(duì)手的絕對(duì)優(yōu)勢(shì),結(jié)合品牌理念深度挖掘項(xiàng)目優(yōu)勢(shì)和產(chǎn)品價(jià)值,提升客戶品牌認(rèn)知、認(rèn)可度。
-
我們的客戶
帷拓科技?xì)v經(jīng)十年沉淀,與國內(nèi)外上千家客戶達(dá)成合作關(guān)系,其中穩(wěn)定合作的公司有:浙江華為、浙江移動(dòng)、浙江5G產(chǎn)業(yè)聯(lián)盟、浙江省社科院、綠城足球俱樂部、娃哈哈雙語學(xué)校、健康中國杭州峰會(huì)、科雷機(jī)電等,帷拓科技始終堅(jiān)持“帷有專業(yè),才能拓展無限”的服務(wù)理念,堅(jiān)持“認(rèn)真堅(jiān)持細(xì)節(jié)”的優(yōu)質(zhì)服務(wù)理念,不斷完善自身,成就企業(yè),最終實(shí)現(xiàn)共贏。
-
我們的業(yè)務(wù)
帷拓科技主營業(yè)務(wù)范圍包含互聯(lián)網(wǎng)高端網(wǎng)站建設(shè)、APP開發(fā)、小程序開發(fā)、商城網(wǎng)站建設(shè)、公眾號(hào)運(yùn)營以及數(shù)字營銷等,涵蓋了服務(wù)、房產(chǎn)、數(shù)碼、服裝、物流貿(mào)易等行業(yè),根據(jù)品牌現(xiàn)狀,為每個(gè)客戶量身定制項(xiàng)目整體服務(wù)方案,以敏銳的市場洞察力、創(chuàng)新的市場策劃能力,全面把握市場變化,為客戶實(shí)現(xiàn)從企業(yè)到消費(fèi)者的價(jià)值轉(zhuǎn)換。