有没有办法让我在加载后在新窗口中打开链接?
我尝试过这两种方法,但是窗口不会自行关闭。
方法1:
var winning = window.open("https://google.com/","","width=500,height=500");
winning.onload = function(){
winning.close();
}:
方法2:
var winning = window.open("https://google.com/","","width=500,height=500");
winning.addEventListener('onload', function(){
winning.close();
}, false);
我有点疯狂。我错过了一些明显的东西,还是这根本不可能?
答案 0 :(得分:2)
您正在进入相同的同源政策。您无法在不同来源的文档上捕获load
事件(因为它会告诉您页面已成功加载,这可能会泄漏信息,例如"用户登录此站点,否则将丢弃一个禁止的错误")。
如果我将URL更改为与出现JavaScript的页面具有相同原点的URL,则可以正常工作。
您最接近的是估计文档加载和使用setTimeout
关闭它所需的时间。
答案 1 :(得分:0)
你可以将事件监听器附加到另一个窗口,但如果两个窗口都在同一个域/协议/端口上,则仅。
Same-Origin Policy限制了您可以跨域访问的属性和事件,与iframe
(触发load
事件的load
事件不同,您可以收听) ,您不能将window.open
事件侦听器附加到使用winning.addEventListener('onload', function(){
创建的窗口,除非它们满足同源策略。
另外,在旁注中,这是一个错字:
winning.addEventListener('load', function(){
应该是:
on
使用addEventListener
时,您不会包含headOption
前缀。