2013-04-17 57 views
0

我使用PhoneGap開發Android應用程序。在的index.html我加載一個js文件是這樣的:javascript:創建自定義事件時獲取「DOM Exception 9」

的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

任何想法?

回答

1

終於讓我找到解決問題。

我改變下面的代碼:

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

到:

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

因爲 「readImageEvent」 不是正確的事件類型。 This link可能是如此有用 關於這個問題。

0

根據developer.mozilla.org

The createEvent method is deprecated.

我想,你可以嘗試這樣的事:關於使用

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

更多信息,兼容性等,可以發現HERE

+0

這隻適用於Mozilla。 Android不支持CustomEvent,也不支持IE。 – Miquel

+0

@Miguel在瀏覽器兼容性表格後面有一個Polyfill。 –

+0

在某些android手機中,document.createEvent('CustomEvent') - > DOM Exception 9(在瀏覽器兼容性,Mobile中你會看到Mozilla放置在每個瀏覽器中)不支持polyfill – Miquel