这是我第一个使用jquery mobile的网站,我遇到外部链接问题。
我会举一个例子。
这是第A页
<!DOCTYPE html >
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title>PageA</title>
<meta name="viewport" content="width=device-width, initial-scale=1" />
<meta name="apple-mobile-web-app-capable" content="yes" />
<meta name="apple-mobile-web-app-status-bar-style" content="black-translucent" />
<link href="Style/Style.css" rel="stylesheet" type="text/css" />
<link href="http://code.jquery.com/mobile/1.0rc1/jquery.mobile-1.0rc1.min.css" rel="stylesheet" type="text/css" />
<script type="text/javascript" src="http://code.jquery.com/jquery-1.6.2.min.js"></script>
<script type="text/javascript" src="http://code.jquery.com/mobile/1.0rc1/jquery.mobile-1.0rc1.min.js"></script>
</head>
<body>
<!-- Start of first page -->
<div data-role="page" id="pageA" data-title="Page A" data-theme="b" data-dom-cache="false">
<div data-role="header" data-theme="b">
<h1>Page A</h1>
</div>
<!-- /header -->
<div data-role="content">
<ul data-role="listview" data-theme="g">
<li><a href="PageB.htm" rel="external">PageB</a></li>
</ul>
</div>
</div>
当我点击链接时,我将转到页面B(到目前为止,一切正常)
<!DOCTYPE html >
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title>Pag B</title>
<meta name="viewport" content="width=device-width, initial-scale=1" />
<meta name="apple-mobile-web-app-capable" content="yes" />
<meta name="apple-mobile-web-app-status-bar-style" content="black-translucent" />
<link href="Style/Style.css" rel="stylesheet" type="text/css" />
<link href="http://code.jquery.com/mobile/1.0rc1/jquery.mobile-1.0rc1.min.css" rel="stylesheet" type="text/css" />
<script type="text/javascript" src="http://code.jquery.com/jquery-1.6.2.min.js"></script>
<script type="text/javascript" src="http://code.jquery.com/mobile/1.0rc1/jquery.mobile-1.0rc1.min.js"></script>
</head>
<body>
<!-- Start of first page -->
<div data-role="page" id="pageB" data-title="Page B" data-theme="b" data-dom-cache="false">
<div data-role="header" data-theme="b">
<h1>Page B</h1>
</div>
<!-- /header -->
<div data-role="content">
<p>I am Page B!!!</p>
</div>
<!-- /content -->
<div data-role="footer" data-theme="c">
<h4>Test</h4>
</div>
<!-- /footer -->
</div>
当我在页面B中时,我按下Android移动设备中的硬件返回按钮并返回Pag A.
然后我再次按下第A页中的链接。页面B出现但它也加载了页面A,并显示了典型的加载div ..
问题是?这为什么会发生?这样做的方式是什么?
我找到了一种方法来解决第B页中的pagebeforehide事件,但我认为这不是这样做的方法..
谢谢!
答案 0 :(得分:3)
我遇到了类似的问题。我设法将其缩小到与使用硬件后退按钮相关的问题。使用此按钮时,移动浏览器未启动document.ready或pageinit事件。此外,这些事件在按下后退按钮后再次从B页转到A时发射不止一次。
绑定到body元素内的onunload修复了问题。在上面的示例中,将其包含在页面A的body标签中可以解决问题:
感谢Pumbaa80和Nickolay Is there a cross-browser onload event when clicking the back button?