Vib*_*aul 7 javascript debugging window internet-explorer-11 eventhandler
我正在使用以下代码来识别浏览器窗口关闭事件,并在其他浏览器上按预期工作,但不在IE11上.由于这行代码undefined只给我IE11 alert(event.clientY+":"+event.clientX);.任何人都可以建议解决这个问题.
window.onbeforeunload = function(event)
{
event= window.event|| event;
alert(event);
alert(event.clientY+":"+event.clientX);
if(event.clientX <0 || event.clientY < 0)
{
// ajax call to server to nullify the session.
window.close();
}
};
Run Code Online (Sandbox Code Playgroud)
从 MDN beforeunload 事件中,您可以看到事件对象支持哪些属性。
事件对象的 clientX 和 clientY 不受支持,因此它们未定义。
这种情况也会在 Chrome 和 FF 中发生,因为 onbeforeunload 事件不包含此类信息(位置 X 和 Y)
我在 IE11、Chrome 48、FF 44 中测试了你的代码。
一个可能的解决方法可能是:
var clientX = 0;
var clientY = 0;
var scheduled = false;
window.onmousemove = function (event) {
if (!scheduled) {
scheduled = true;
setTimeout(function () {
event = event || window.event;
clientX = event.clientX;
clientY = event.clientY;
scheduled = false;
}, 1000);
}
}
window.onbeforeunload = function (event) {
alert(clientY+":"+clientX);
if (clientX < 0 || clientY < 0) {
// ajax call to server to nullify the session.
window.close();
}
};Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
4309 次 |
| 最近记录: |