You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@cordova.apache.org by "Thomas Dinger (JIRA)" <ji...@apache.org> on 2013/01/08 19:24:14 UTC

[jira] [Created] (CB-2166) The deviceReady event may not be received because of asynchronous JavaScript loading

Thomas Dinger created CB-2166:
---------------------------------

             Summary: The deviceReady event may not be received because of asynchronous JavaScript loading
                 Key: CB-2166
                 URL: https://issues.apache.org/jira/browse/CB-2166
             Project: Apache Cordova
          Issue Type: Bug
          Components: CordovaJS, Docs
    Affects Versions: 2.2.0
         Environment: Cordova 2.2, Android 2.3.4
            Reporter: Thomas Dinger
            Assignee: Filip Maj


HTML page includes Cordova script first, then my Cordova-dependent script. My script registers a listener for the deviceReady event. Occasionally the listener is not called. I've determined the problem is due to the timing of the asynchronous loading of the script files. Because of the way cordova "hijacks" the document.addEventListener function, my event handler may be registered with the document object instead of Cordova, depending on whether the Cordova script is executed before my script.

Would it be possible for Cordova to look at the document object and determine whether there are existing event listeners for the deviceReady event? And if there are, to "hijack" these event handlers so they are called correctly when Cordova sends the deviceReady event?

I have changed my code to wait for the DOMContentLoaded event before registering my deviceReady event handler. This has been successful for me, and might be an approach that could be used in the Cordova documentation.

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see: http://www.atlassian.com/software/jira