锚定"javascript:void(0)"导致window.onbeforeunload在IE上触发

Tow*_*wer 11 javascript internet-explorer dom

我正在使用一个名为Chosen的下拉小部件,它有一个带有href的锚点javascript:void(0).当我点击下拉菜单时,它可以正常运行,但是在IE上,它会触发一个onbeforeunload令人沮丧的新事件,因为应用程序会确认您是否要离开.显然,当您输入表单数据时,您不希望出现这些问题.

有没有办法摆脱这个问题而不改变选择的库?

不幸的是:

window.onbeforeunload = function (e) {
    console.log(window.location);
};
Run Code Online (Sandbox Code Playgroud)

也不记录javascript:void(0),因此,我无法使用它来检查目标URL.

这种行为至少发生在IE9中,这就是我所关心的(不是旧的IE).

Vis*_*ioN 13

我能看到的唯一解决方案是添加返回falseonclick链接的事件处理程序.它会告诉IE,您不打算通过单击链接来更改页面.

<a href="javascript:void(0);" onclick="doSomething(); return false;">Link</a>
Run Code Online (Sandbox Code Playgroud)

同样可以这样写:

<script>
    function doSomething() {
        // do Something
        return false;
    }
</script>

<a href="javascript:void(0);" onclick="return doSomething();">Link</a>
Run Code Online (Sandbox Code Playgroud)