js跨域window.opener
js跨域
概念
跨域,是指瀏覽器不能執行其他網站的指令碼。它是由瀏覽器的同源策略造成的,是瀏覽器對JavaScript實施的安全限制。
http://www.nihao.com/index.html 呼叫 http://www.nihao.com/server.php (非跨域)
http://www.nihao.com/index.html 呼叫 http://www.nihaoma.com/server.php (主域名不同:nihao/nihaoma,跨域)
http://abc.nihao.com/index.html 呼叫 http://def.nihao.com/server.php (子域名不同:abc/def,跨域)
http://www.nihao.com:8080/index.html 呼叫 http://www.nihao.com:8081/server.php (埠不同:8080/8081,跨域)
http://www.nihao.com/index.html 呼叫 https://www.nihao.com/server.php (協議不同:http/https,跨域)
localhost 呼叫 127.0.0.1 跨域
跨域:協議、域名、埠其中任意一個不同。
同源:協議、域名、埠均相同,
案列
//a.html a頁面下的程式碼
var param = {
act_name:"comfirmAddr",
search_name: $("#search_input").val(),
data:selAddList
}
var json = JSON.stringify(param);
console.log(json);
//第二個引數是目標域:http://www.nihao.com/a.html
window.opener.postMessage(json,'*');
window.close();
//b.html b頁面下的程式碼 b頁面接受a頁面傳送過來的資訊
HTML:
<el-button onclick="goToB" >開啟b.html的頁面</el-button>
JavaScript:
function goToB(){
var url = "http://www.ifine.com/b.html"
window.open(url, "開啟b.html的頁面", "height=" + screen.height + ",width=" + screen.width + ",menubar=no,scrollbars=no,resizable=yes,toolbar=no,status=no,left=100,top=100") ;
}
window.addEventListener('message', receieveMessage, false);
function receieveMessage(event)
{
try
{
var param = event.data;
var json = window.JSON.parse(param);
var act_name = json.act_name;
if(act_name == 'comfirmAddr')
{
vueObject.addrKey = json.search_name;
var v_data = json.data;
vueObject.addresArr = v_data;
}
}
catch(e)
{
alert("異常名字:"+e.name);
alert("異常號:"+e.number);
alert("異常的描述資訊:"+e.description);
alert("異常的錯誤資訊:"+e.message);
}
}
事件監聽
window.addEventListener(type, function, true/false);
type:事件的型別(如“click”或“mousedown”或“message”或“resize”)。
function:事件觸發後呼叫的函式。
true/false:true:先捕獲 、false:先冒泡
移除監聽事件
window.removeEventListener(“click”, function);
相關文章
- js -- 跨域問題JS跨域
- JSON形式跨域JSON跨域
- js跨域問題JS跨域
- ajax jsonp跨域JSON跨域
- jsonp跨域封裝JSON跨域封裝
- JavaScript跨域呼叫、JSONPJavaScript跨域JSON
- js跨域資源共享JS跨域
- JS跨域知識整理JS跨域
- eggjs 跨域配置JS跨域
- 深入跨域問題(3) – 利用 JSONP 解決跨域跨域JSON
- 深入跨域問題(3) - 利用 JSONP 解決跨域跨域JSON
- JS_0081:雜記:window.openerJS
- jsonpGet,跨域如此簡單JSON跨域
- js跨域解決方案(一)JS跨域
- JS中的跨域問題JS跨域
- 詳解JS跨域問題JS跨域
- 搞懂:前端跨域問題JS解決跨域問題VUE代理解決跨域問題原理前端跨域JSVue
- jsonp跨域資源引起CORBJSON跨域ORB
- php 支援jsonp跨域請求PHPJSON跨域
- JSONP 跨域原理及實現JSON跨域
- WebView與JS、Ajax跨域問題WebViewJS跨域
- JavaScript跨域(1):什麼是跨域,如何跨域JavaScript跨域
- 跨域問題(普通跨域和springsecurity跨域)跨域SpringGse
- 跨域庫herryPostMessage.js的一些優化,多iframe跨域跨域JS優化
- JSONProxy – 獲取跨域json資料工具JSON跨域
- JS獲取跨域的cookie例項JS跨域Cookie
- JSONP原理及實現跨域方式JSON跨域
- JS中window.open和window.opener的使用薦JS
- 跨域跨域
- 跨域原理以及跨域解決方案跨域
- NodeJS+Express遇到的跨域問題NodeJSExpress跨域
- jquery 之 jsonp 與 laravel 實現跨域jQueryJSONLaravel跨域
- AngularJs解決跨域簡單介紹AngularJS跨域
- js資源跨域訪問的問題JS跨域
- JSONP解決跨域請求問題JSON跨域
- 解決JS跨域訪問的問題JS跨域
- HTTP跨域HTTP跨域
- nuxt跨域UX跨域