jQuery Mobile URL在Android浏览器上将哈希(#)转换为%23

时间:2012-03-21 04:46:50

标签: javascript jquery android mobile jquery-mobile

我正在为我的网站使用jQuery Mobile多页面模板,但是当我从Android浏览器访问该网站时,它无法正常工作。

问题在于,浏览器将#代码转换为%23

例如,我可以在iPhone中访问此链接www.domain.com/abc.php?id=1234#show_map,但Android会显示以下链接:www.domain.com/abc.php?id=1234%23show_map

我该如何解决这个问题?我应该创建新页面而不是哈希标记页面,还是如何为Android浏览器添加例外?

谢谢

更新 以下代码在Android上不起作用,但适用于其他任何地方:

    <script type="text/JavaScript">
        window.done_mapping=false;
        contingency = function() {
            if(window.done_mapping) return true;
            window.location.href='#roast_map';
            window.location.reload();
        }
        contingency_email = function() {
            if(document.getElementById("email")) return true;
            window.location.href+='#email';
            window.location.reload();
        }
    </script>

    <div data-role="content">
        <ul data-role="listview" data-inset="true" data-theme="c" data-dividertheme="a">
            <li class="goMap"><a href="#roast_map" data-transition="slide" onclick="contingency();">View on map</a></li>
            <li class="goMap"><a href="#email" data-transition="slide" onclick="contingency_email()">E-mail Results</a></li>
        </ul>
    </div>

1 个答案:

答案 0 :(得分:1)

您应该使用jquery编码/解码方法对包含特殊字符的网址进行编码。例如:

var url ='www.domain.com/abc.php?id = 1234#show_map'; var encodedUrl = encodeURIComponent(url);