我有一个index.html
文件,其中包含:
document.addEventListener("deviceready",onDeviceReady,false);
function onDeviceReady(){
var deviceuid = device.uuid; // gets the phoneid
alert('index');
checkUser(deviceuid); // this is some function i made
}
如果一切正常,我会加载另一个名为page1.html
的页面,其中包含一些文字和链接:
<a href="page2.html">Page 2</a>
page2.html
有一些其他文字以及返回主页的链接:
<a href="index.html">Go to Index</a>
当我启动应用程序时,我可以看到警报和其他脚本正在运行,但是当我点击链接返回到index.html时,页面变为空白并且没有显示警报
任何想法?我是否必须运行其他一些刷新页面的代码?
编辑:
我可以使用:<a href="#" onClick="document.location = 'index.html';" >Go To Index</a>
但它似乎只能在浏览器
中在移动设备上运行答案 0 :(得分:1)
您正在描述标准浏览器行为。但是jQuery mobile按照AJAX执行页面加载默认设置,请参阅http://jquerymobile.com/demos/1.0.1/docs/pages/page-links.html。
这意味着加载了第一页(“index.html”)并执行了onDeviceReady
。当您单击指向第二页(“page2.html”)的链接时,将按照AJAX加载此页面,将其插入到第一页的DOM中并显示。
当您单击指向第一页的链接时,不会发生加载,因为两个页面都在DOM中,并且第一页再次显示而不会触发onDeviceReady
- 这只会在第一次加载时发生。
添加到每个链接rel="external"
时,您可以关闭AJAX加载。
但是,您应该使用AJAX加载及其优点。阅读http://jquerymobile.com/demos/1.0.1/docs/pages/page-scripting.html - 它会在执行脚本时详细说明。我认为您应该将代码放在pagechange-或pageshow-event中,请参阅http://jquerymobile.com/demos/1.0.1/docs/api/events.html。