Phonegap ondeviceready

时间:2014-08-28 10:46:14

标签: javascript android jquery jquery-mobile cordova

我有一个带有几个html文件的phonegap应用程序,对于每个html文件,我有js.file。 在每个js文件中,我添加了一个eventListener,如下所示:

function onDeviceReady()
{ 
   alert('HI'); 
}

document.addEventListener('deviceready',onDeviceReady,false);

现在,当应用程序启动时,我正在检查设备是否准备好并提醒一些字符串(用于测试)。

但是当我更改为另一个html文件时,它不起作用,它只适用于index.html文件。 它似乎没有为其他页面触发事件监听器,为什么?

修改 好吧,正如它在下面的评论中说的那样,设备准备就绪只有一次。

所以我尝试使用onload事件调用javascript函数:

 <head> 
     <script src = "js\file.js type = "text/javascript" language = "javascript">
 </head>

<body onload = "onLoad()">
</body>

在js文件中有一个函数:

function onLoad()
{
     alert('HI');
}

但是当我转到此页面时,它不会发出警报。

我也是这样尝试的:

 <head>
   <script>
    $(document).ready(function()
            {
                alert('HI');
            })
    </script>
  </head>

仍然......没什么......

2 个答案:

答案 0 :(得分:1)

之前我遇到过类似的问题。首先,你如何指导其他页面? 如果你这样做

<a href="otherpage.html"></a>

有时.js文件无法正常工作。

当您向按钮添加点击事件并将其指向此类其他页面时;

setTimeOut( function() { document.location = "otherpage.html";},50);

它有效。

这就是我解决问题的方法,我希望它也适合你。

答案 1 :(得分:0)

因此,经过多次尝试让事情变得有效,我没有设法“触发”其他html页面的onload事件。

似乎JQM只支持一个带有多个div的html.file,每个div都像一个页面一样,使用属性data-role set to page。

我不知道为什么它没有为其他html文件触发事件,因为我将所有必要的js文件添加到那些html文件中。

如果你能找到任何其他解决方案,我会很感激..但同时我认为这是唯一的解决方案,在我看来这是一件坏事,因为如果你的应用程序有很多页面,那么将难以维护...这就是为什么我试图分成不同的页面(html文件)