当前位置: 首页 > 技术中心  > 物联网技术

利用Chromely的注册外部url打开跨域页面

Chromely 是一个开源的Chrome浏览器内核程序,浏览器为了安全都是限制了跨地址域访问。但可以利用postMessage方法和Chromely的注册外部浏览器来实现跨域访问

众所周知浏览器为了安全起见限制了跨域访问,即便是利用iframe也不能随便访问;但有时候我们需要跨域来传递一些信息或打开新的页面,怎么办呢?

好在限制Html5新增了postMessage方法,本来postMessage是windows应用中线程间消息通知方法;现在Html5在浏览器中来实现窗口间消息传递。


简单两步只需要在消息接收页面中监听事件即可。

1、消息发送页面:

top.postMessage(openUrl,url);


2、消息接收页面:

window.addEventListener("message", eventHandler, false);

function eventHandler(eventHandler){

     // e.data =>发送页的openUrl

    window.open(e.data);

}


但往往事情没有这么简单,发现根本没有打开新页面; 如果是传递一般信息上两步即可,但打开新的页面会被浏览器和谐掉。

Chromely中提供了RegisterUrlScheme方法,该方法是注册URL地址,此方法只有一个参数。

RegisterUrlScheme(new UrlScheme(urlString,true));

UrlScheme是RegisterUrlScheme的的必要参数,UrlScheme的两个参数url,isExternal;isExternal标注是否外部地址。

注册了外部地址后 window.open就可以打开非本域的URL地址了。


上一篇:EC20模块常见应用问题

下一篇:串口通信

相关技术

  • 什么是物联网之现在的物联网应用

    今天我们一起来分享:现在的联物网都在哪些行业有落地,并做了些什么?就“物联网”现阶段来看,更多的是应用于工业领域,这个工业领域的“物联网”,我们称之为:“工业物联网”,其实“工业物联网”就是咱们“M2M”理念的实际落地应用,从引入“M2M”概念到我们实际接受…

  • EC20模块常见应用问题

    EC20模块是由上海移提供的4G通讯模组,该模组广泛应用于物联网行业及各个通讯领域,笔者在使用过程中发现的一些常见问题分享给大家。根据该模组的数据手册,当模块注册网络时,电流可能达到2安培峰值,因此在设计时应该考虑足够的供电能力,否则模块无法注册网络。其次应…

DTU(12) RTU(12) 物联网(12) MBUS(11) HERY(6) 4G全网通(5) 智慧工地(3) IOT(2) DI(2) DO(2) 集中器(2) PLC(2) RS485(2) RS232(1) GPRS(1) GPRS2G(1) 采集器(1) AI(1) AO(1) SCADA(1) NBIOT(1) 智慧水务(1) 5G(1) MQTT(1) HTTP(1) 抄表(1) WiFi(0) BLE(0) PWM(0) 污水处理(0)
咨询反馈
扫码关注

恒远物联 微信公众号

返回顶部
网站客服