我试图在JavaScript中创建一个自定义事件。
我有一个运行Internet 9的WebBrowser的WPF应用程序。
守则:
var evt = document.createEvent("Event");
evt.initEvent("readerstatechanged", true, false);
window.dispatchEvent(evt);错误:

我也试过:
var evt = new Event("Event");错误:

您知道如何使用IE9创建自定义事件吗?
编辑:
我用createEventObject进行了更改,但是"InitEvent“不起作用:
var evt = document.createEventObject("Event");
evt.initEvent("printerstatechanged", true, false);
window.dispatchEvent(evt);然后我需要像这样使用attachEvent:
window.attachEvent('printerstatechanged', function (e) {
//Do something
});发布于 2014-04-29 10:43:13
IE9支持DOM3事件,因此您可以创建和挂钩自定义事件。下面是一个完整的示例,它适用于IE9和其他与DOM3 3兼容的浏览器:活拷贝
<!DOCTYPE html>
<html>
<head>
<meta charset=utf-8 />
<title>IE9+ Custom Event</title>
</head>
<body>
<script>
(function() {
// Hooking the event, in this case on documentElement
document.documentElement.addEventListener("readerstatechanged", function() {
display("readerstatechanged received");
});
// Creating it
display("Creating");
var evt = document.createEvent("CustomEvent");
evt.initCustomEvent("readerstatechanged", true, false, {});
// Could put custom data here -------------------------^^
// Firing it on documentElement
display("Firing");
document.documentElement.dispatchEvent(evt);
function display(msg) {
var p = document.createElement('p');
p.innerHTML = String(msg);
document.body.appendChild(p);
}
})();
</script>
</body>
</html>它在IE8不起作用,但正如你所强调的,IE9.
如果您的站点在严重错误命名的“兼容性视图”中显示,IE将关闭这些标准功能,使其与现实世界的兼容性更低,而不是更多。我认为,对intranet站点使用“兼容性视图”是默认设置,这只是一种形式。通过向您的meta部分添加一个head标记,您可以向IE保证您实际上知道自己在做什么:
<meta http-equiv="X-UA-Compatible" content="IE=Edge"/>https://stackoverflow.com/questions/23361387
复制相似问题