2014-08-28 215 views
1

我有一個phonegap應用程序與幾個html文件,併爲每個html文件我有js.file。 在每一個js文件我添加的事件監聽像這樣:Phonegap ondevice準備就緒

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

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

現在,當應用程序啓動,我檢查,如果該設備已準備就緒,並提醒一些字符串(測試)。

但是,當我改變到另一個html文件,它不起作用,它只適用於index.html文件。 它似乎不會觸發其他頁面的事件偵聽器,爲什麼?好吧,就像它在下面的評論中說的那樣,設備準備好了只需要一次調用即可。

於是,我就打電話給一個javascript函數與onload事件:

<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> 

,仍然..沒有..

+1

onDeviceReady僅在應用程序啓動時第一次執行。 – 2014-08-28 10:49:43

+0

是的我知道,但在此之前,我試圖從onLoad事件調用一個js函數,它也沒有工作,所以我試圖測試這是否有助於解決問題,但它沒有 – Elior 2014-08-28 10:51:59

+0

我鏈接我的js文件到html文件,但它沒有調用函數..它很奇怪 – Elior 2014-08-28 10:52:58

回答

0

這麼多的嘗試後得到工作上的事情,我沒能「火」 onload事件的其他html頁面。

似乎JQM只支持一個帶有多個div的html.file,每個div都像一個頁面一樣使用屬性data-role set設置爲頁面。

我不知道爲什麼它沒有激發其他html文件的事件,因爲我添加了所有必需的js文件到這些html文件。

如果你能找到任何其他的解決方案,我會感激......但同時我認爲這是唯一的解決方案,在我看來它是一種壞事,因爲如果你的應用有很多頁面,這將是很難維護它......這就是爲什麼我試圖分離成不同的頁面(HTML文件)

+0

你有單頁面的應用程序(只有一個HTML多頁)或多個HTML應用程序。 – Aravin 2014-10-01 11:09:55

+0

正如我所說,我只有一個帶有多個div的html文件,每個div都像一個頁面(另一個屏幕) – Elior 2014-10-02 23:18:21

+0

在單個頁面中DOM只在第一次加載..無需調用ondeviceready,每一次..只是有一次它足以達到科爾多瓦的特點。 – Aravin 2014-10-03 06:16:48

1

我以前有過類似的問題。首先,你如何指導其他網頁? 如果你喜歡這個

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

這樣做有時.js文件無法正常工作。

當您將點擊事件添加到按鈕並指向其他頁面時,

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

它的工作原理。

這是我如何解決我的問題,我希望它也適用於你。

+0

我使用jQuery的手機,所以當用戶點擊按鈕,代碼是「$ .mobile.changePage('otherPage.html'); – Elior 2014-08-29 15:02:00

+0

您可以使用jQuery的手機中的JavaScript函數。 – Emre 2014-08-29 15:13:25

相關問題