jQuery Mobile是否有可能在它加载的第一个页面中显示哈希值?

时间:2012-03-23 15:53:23

标签: javascript jquery dom jquery-mobile hashtag

如果我有一个index.html文件并且它包含多个页面。当我加载页面时,我希望URL包含哈希#first,即index.html#first。相反,网址显示为index.html

到目前为止,我的工作是假首页,然后直接链接到index.html#first,希望永远不会显示“真正的”第一页,即index.html#fake

有更好的方法吗?

<body>

    <!--
        fake page
    -->
    <div data-role="page" id="fake">
        <div data-role="content">
            fake
        </div>
    </div>

    <!--
        first
    -->
    <div data-role="page" id="first">
        <div data-role="content">
            first
        </div>
    </div>

    <!--
        second
    -->
    <div data-role="page" id="second">
        <div data-role="content">
            second
        </div>
    </div>
</body>

2 个答案:

答案 0 :(得分:1)

为什么不检查JS是否在index.html页面上存在哈希码,如果不是,那么您可以将浏览器重定向到index.html#first

$(function () {
    if (window.location.hash.length == 0) {
        window.location = window.location.href + '#first';    
    }
});

答案 1 :(得分:0)

配置您的Web服务器,以便对“index.html”请求“/”(没有文件的路径!)的请求返回301 Moved Permanently响应以重定向到'index.html #first'

那说,我无法想象你为什么要强制哈希到网址上;也许是一个不够健壮的图书馆?正确编码,http://example.com/http://example.com/index.htmlhttp://example.com/index.html#first可以而且应该(IMHO)的行为都相同。