【问题标题】:javascript: Getting "DOM Exception 9" while creating custom eventjavascript:在创建自定义事件时获取“DOM Exception 9”
【发布时间】:2013-04-20 05:01:04
【问题描述】:

我正在使用 PhoneGap 开发一个安卓应用。在 index.html 我加载了一个这样的 js 文件:

index.html

<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8" />
<link rel="stylesheet" href="styles/style.css" />
<link rel="stylesheet" href="styles/loading.css" />
<script src="scripts/jquery-1.7.2.min.js"></script>
<script type="text/javascript" src="scripts/cordova-2.5.0.js"></script>
<script type="text/javascript" src="scripts/readImages.js"></script>

<script type="text/javascript">
    function onReadImage(event) {
        //do something
    }
    document.addEventListener("onReadImage", onReadImage, false);
</script>
</head>
<body>
<!--
  .....
-->
</body>
</html>

readImages.js

// Some codes

window.readImageEvent= document.createEvent("readImageEvent"); // line 4
readImageEvent.initEvent("onWeddingCakesRead", true, true); 

//Some functions

readImageEvent.images = data;
document.dispatchEvent(readImageEvent);

但是当我检查 LogCat 时,我看到了这个错误:

未捕获的错误:NOT_SUPPORTED_ERR:文件中的 DOM 异常 9:///android_asset/www/scripts/readImages.js:4

有什么想法吗?

【问题讨论】:

    标签: javascript android cordova


    【解决方案1】:

    我终于发现了问题。

    我更改了以下代码:

    window.readImageEvent= document.createEvent("readImageEvent");
    

    到:

    window.readImageEvent= document.createEvent("Event");
    

    因为“readImageEvent”不是正确的事件类型。 This link 可能很有用 关于这个问题。

    【讨论】:

      【解决方案2】:

      根据developer.mozilla.org

      createEvent 方法已弃用。

      我猜,你可以试试这样的:

      var readImageEvent = new CustomEvent(
          "onReadImage",
          {
              detail: {
                  images: data
              },
              bubbles: true,
              cancelable: true
          }
      );
      document.dispatchEvent(readImageEvent);
      

      更多关于使用、兼容性等的信息可以在HERE找到

      【讨论】:

      • 这仅适用于 mozilla。 Android 不支持 CustomEvent,也不支持 IE。
      • @Miguel 在浏览器兼容性表之后有一个 Polyfill。
      • 并且某些带有 document.createEvent('CustomEvent') 的 android 手机不支持 polyfill --> DOM 异常 9(在浏览器兼容性中,您会看到 Mozilla 在每个浏览器中都放置了 ? )
      • @Miguel 可以在任何浏览器中重现原始错误。该问题也用javascript 标记,因此它不涉及 Android 兼容性。
      • 我认为您的答案不正确,因为问题表明正在为 Android 开发 Phonegapp 应用程序:其中一些他们使用 DOM 级别 2,其中未定义 CustomEvent,请参阅注释部分中的 herehere
      猜你喜欢
      • 2014-06-14
      • 2015-10-01
      • 2014-08-28
      • 2018-07-23
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-03-24
      相关资源
      最近更新 更多