你没有说你使用的是哪个浏览器,但我能想到的唯一方法是使用 Firefox 的Object.watch
.
document.watch('location', function(prop, oldval, newval) {
window.open(newval);
return '#';
});
这将干预任何设置的尝试document.location
,打开一个具有相同参数的窗口,然后将分配更改为'#'
(通常什么都不做)。
以小书签形式,并扩展为涵盖document.location
和window.location
:
javascript:(function(){var handle=function(prop, oldval, newval){window.open(newval); return '#';};document.watch('location',handle);window.watch('location',handle);})();
但即使这样也不会反对分配给document.location.href
; 位置对象是一些Object.watch
拒绝工作的特殊事物。
如果这还不够,您可以onbeforeunload
在尝试离开并取消它时提示您(如果这是您的目标)。
我有最好的,对不起!