首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >用IE9创建Javascript事件

用IE9创建Javascript事件
EN

Stack Overflow用户
提问于 2014-04-29 09:57:32
回答 1查看 4.2K关注 0票数 2

我试图在JavaScript中创建一个自定义事件。

我有一个运行Internet 9的WebBrowser的WPF应用程序。

守则:

代码语言:javascript
复制
var evt = document.createEvent("Event");

evt.initEvent("readerstatechanged", true, false);
window.dispatchEvent(evt);

错误:

我也试过:

代码语言:javascript
复制
var evt = new Event("Event");

错误:

您知道如何使用IE9创建自定义事件吗?

编辑:

我用createEventObject进行了更改,但是"InitEvent“不起作用:

代码语言:javascript
复制
            var evt = document.createEventObject("Event");

            evt.initEvent("printerstatechanged", true, false);
            window.dispatchEvent(evt);

然后我需要像这样使用attachEvent:

代码语言:javascript
复制
            window.attachEvent('printerstatechanged', function (e) {
                //Do something
            });
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-04-29 10:43:13

IE9支持DOM3事件,因此您可以创建和挂钩自定义事件。下面是一个完整的示例,它适用于IE9和其他与DOM3 3兼容的浏览器:活拷贝

代码语言:javascript
复制
<!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保证您实际上知道自己在做什么:

代码语言:javascript
复制
<meta http-equiv="X-UA-Compatible" content="IE=Edge"/>
票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/23361387

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档