在我的 Phonegap Android 应用程序中,我有以下 Javascript 代码:
function onDeviceready()
{
window.plugins.webintent.getUri(function(url)
{
alert("window location is: " + window.location);
if (window.location !== 'file:///android_asset/www/confirmation.html')
{
window.location = "file:///android_asset/www/confirmation.html";
}
});
}
在我看来,如果 window.location 不是 file:///android_asset/www/confirmation.html
,那么它应该转到 file:///android_asset/www/confirmation.html
。如果它已经在该页面上,那么什么都不会发生。
但是,发生的情况是它会一遍又一遍地重新加载 file:///android_asset/www/confirmation.html
而不会停止。
在网络上进行一点搜索表明,在 Android 设备的上下文中,应该使用 navigator.app.loadUrl()
而不是 window.location
,但是此代码仍然循环:
function onDeviceready()
{
window.plugins.webintent.getUri(function(url)
{
alert("window location is: " + window.location);
if (window.location !== 'file:///android_asset/www/confirmation.html')
{
navigator.app.loadUrl("file:///android_asset/www/confirmation.html");
}
});
}
如果我已经在 file:///android_asset/www/confirmation.html
上,如何继续留在 file:///android_asset/www/confirmation.html
上> 当我通过我的 onDeviceready
代码时?
最佳答案
window.location
是 an object ,不是字符串,因此比较不起作用。
也许可以尝试window.location.href != 'http://....'
令人困惑的地方在于,即使它是一个对象,您仍然可以为其分配一个字符串(以更改 URL)。
关于javascript - 为什么 onDeviceReady 中的 if() 语句会循环?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18653194/