phonegapデバイスの準備完了イベントで問題が発生しています。私はiOS6.0でテストしています。
デバイスレディが起動されると、DOMはレディではありません。イベントリスナーでイベントを一部のDOM要素にバインドするとdeviceready
、これらの要素はこの初期の時点では存在しないため、通知を受け取りません。
では、DOMとphonegapの両方がロードを完了するまで待つためのベストプラクティスは何ですか?
phonegapデバイスの準備完了イベントで問題が発生しています。私はiOS6.0でテストしています。
デバイスレディが起動されると、DOMはレディではありません。イベントリスナーでイベントを一部のDOM要素にバインドするとdeviceready
、これらの要素はこの初期の時点では存在しないため、通知を受け取りません。
では、DOMとphonegapの両方がロードを完了するまで待つためのベストプラクティスは何ですか?
jqueryを使用している場合は、これを試してください
$(document).ready(function(){
document.addEventListener("deviceready",onDeviceReady,false);
});
function onDeviceReady(){
//write your function body here
}
JavaScriptのみを使用している場合は、これを試してください
if(document.readyState === "complete") {
document.addEventListener("deviceready",onDeviceReady,false);
}
function onDeviceReady(){
//write your function body here
}
このようなことを試してください:
function onLoad(){
document.addEventListener("deviceready", onDeviceReady, false);
}
function onDeviceReady(){
// Now safe to use the PhoneGap API
}
それで:
<body onload="onLoad()">
これにより、deviceready が呼び出される前に DOM の準備が整っていることが保証されます。