我正在为WebApp使用jqueryUI / jquerymobile。有一个按钮,应该检查用户是否连接到互联网。无论他是否应该改变链接的href。我尝试了以下但它不起作用。有什么想法吗?无论是在线还是离线,它都会每次打开http://test.com的链接。
<script type="text/javascript">
function OnClick () {
if ('onLine' in navigator) {
if (navigator.onLine) {
window.location = "http://test.com/";
}
else {
window.location = "test.html";
}
}
else {
alert ("Your browser does not support the onLine property.");
}
}
</script>
<li class="ui-corner-none nav2"><a href="http://test.com/" onClick="OnClick ()">Link</a></li>
答案 0 :(得分:1)
我不知道它背后的逻辑 - 但我的猜测是首先启动点击“链接”(也就是浏览器首先跟随链接)而不是OnClick
事件触发(什么都不做,因为它不再在同一页面上了。)
详细了解:JavaScript function in href vs. onclick
如果您已连接到互联网并更改链接的“href”属性,我的修复方法是检查页面加载。
$(function() {
if ('onLine' in navigator) {
if (navigator.onLine) {
$("li.nav2 a").attr("href", "http://test.com/")
}
else {
$("li.nav2 a").attr("href", "test.html")
}
}
else {
alert ("Your browser does not support the onLine property.");
}
});
另一个更快的解决方案是
<li class="ui-corner-none nav2"><a href="http://test.com/" onClick="return OnClick ()">Link</a></li>