根据离线或在线的用户连接更改链接href

时间:2013-12-06 09:15:56

标签: jquery jquery-mobile

我正在为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>

1 个答案:

答案 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>

请参阅:HTML tag <a> want to add both href and onclick working