在窗口1中使用window.open打开的页面(窗口2),
如何在窗口1中写js,控制窗口2
判断下浏览器切换事件,切换到窗口2时候重新拿一次页面数据
let hiddenProperty = 'hidden' in document ? 'hidden' :
'webkitHidden' in document ? 'webkitHidden' :
'mozHidden' in document ? 'mozHidden' :
null;
let visibilityChangeEvent = hiddenProperty.replace(/hidden/i, 'visibilitychange');
let onVisibilityChange = function(){
if (!document[hiddenProperty]) {
console.log('页面非激活');
}else{
console.log('页面激活')
}
}
document.addEventListener(visibilityChangeEvent, onVisibilityChange);
其实我在想:
window.open
来打开新页面?是否能采用模拟的形式展示内容,这样实质在一个页面下,更好交互控制。如果必须采用window.open
,则A页面和新打开的B页面的关系,是否涉及跨域(涉及安全问题,除非B页面服务器上有相应接口,否则A页面无法和B进行通信及控制),以及具体需要控制哪些?
10 回答11.1k 阅读
6 回答3k 阅读
5 回答4.8k 阅读✓ 已解决
4 回答3.1k 阅读✓ 已解决
2 回答2.7k 阅读✓ 已解决
3 回答5.1k 阅读✓ 已解决
3 回答1.8k 阅读✓ 已解决
跨域吗?
跨域如果目标站点不是你自己写的,那没办法。
你想想,如果你自己做了一个钓鱼网站,
window.open
打开一个网银页面,然后还能通过 JS 操作网银的页面?这浏览器能不防你?如果也是你自己写的,那么用
postMessage
来传递 JS 代码吧,执行结果再传回去。同域的话
window.open
的返回值就是你打开的页面的window
对象,有了它你原来咋动态加载 JS 现在还咋动态加载。