cross.js
复制代码 代码如下:
(function(global){
global.Cross = {
signalHandler: {},
on: function(signal, func){
this.signalHandler[signal] = func;
},
call: function(win, domain, signal, data, callbackfunc){
var notice = {"signal": signal, "data": data};
if(!!callbackfunc){
notice["callback"] = "callback_" + new Date().getTime();
Cross.on(notice["callback"], callbackfunc);
}
var noticeStr = JSON.stringify(notice);
win.postMessage(noticeStr, domain);
}
};
$(window).on("message", function(e) {
var realEvent = e.originalEvent,
data = realEvent.data,
swin = realEvent.source,
origin = realEvent.origin,
protocol;
try {
protocol = JSON.parse(data);
var result = global.Cross.signalHandler[protocol.signal].call(null, protocol.data);
if(!!protocol["callback"]){
Cross.call(swin, origin, protocol["callback"], {result: result});
}
if(/^callback_/.test(protocol.signal)){
delete Cross.signalHandler[protocol.signal];
}
} catch (e) {
console.log(e);
throw new Error("cross error.");
}
});
})(window);
a.html
复制代码 代码如下:
<!doctype HTML>
<html>
<head>
<script src="/UploadFiles/2021-04-02/jquery-1.8.3.min.js">
<script src="cross.js">
<script>
function call_b(){
var ifw = $("#ifr")[0].contentWindow;
//调用iframe子页面的公开的test接口, 子页面域名为http://localhost:8088
Cross.call(ifw,"http://localhost:8088","test",{t: $("#txt").val()});
}
</script>
</head>
<body>
<input id="txt" type="text"/>
<button onclick="call_b()">call</button>
<iframe id="ifr" src="/UploadFiles/2021-04-02/b.html">
</body>
</html>
b.html
复制代码 代码如下:
<!doctype HTML>
<html>
<head>
<script src="/UploadFiles/2021-04-02/jquery-1.8.3.min.js">
<script src="cross.js">
<script>
//对外公开一个接口命名为test
Cross.on("test", function(data){
alert(data.t);
});
</script>
</head>
<body>
</body>
</html>
以上就是本文所述的iframe跨域的解决方案了,希望大家能够喜欢。
jQuery,跨域,iframe
P70系列延期,华为新旗舰将在下月发布
3月20日消息,近期博主@数码闲聊站 透露,原定三月份发布的华为新旗舰P70系列延期发布,预计4月份上市。
而博主@定焦数码 爆料,华为的P70系列在定位上已经超过了Mate60,成为了重要的旗舰系列之一。它肩负着重返影像领域顶尖的使命。那么这次P70会带来哪些令人惊艳的创新呢?
根据目前爆料的消息来看,华为P70系列将推出三个版本,其中P70和P70 Pro采用了三角形的摄像头模组设计,而P70 Art则采用了与上一代P60 Art相似的不规则形状设计。这样的外观是否好看见仁见智,但辨识度绝对拉满。