使用JavaScript捕获新的浏览器窗口打开事件

3

使用JavaScript捕获新的浏览器窗口打开事件并在之前调用一些函数,这是否可能?谢谢。

1个回答

9

window 没有 beforeload 事件。

像这样的方法可能会起作用,但请记住覆盖 window.open 是非常危险的。

var windowOpen = window.open;

window.open = function(url, name, features, replace) {
    alert("opening a window");
    // do other stuff here
    windowOpen(url, name, features, replace);  
}

window.open("http://www.google.com");

你能详细说明覆盖window.open()的坏处吗? - uowzd01
1
通常覆盖窗口(或大多数全局)函数是个不好的做法,因为你覆盖后的实现可能更容易出错,并且会对依赖 window.open 的其他代码产生意想不到的副作用。一种更好的策略通常是提供一个新函数来调用window.open以及执行你需要 window.open 执行的其他操作,并在你自己的代码中使用。这样,只有调用你的方法的代码受影响。 - ktusznio
它刚刚救了我的一天!我不知道为什么它没有被标记为正确答案,但谢谢你,伙计! - p u

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接