javascript - JQuery.address - 从 url 中删除 #

标签 javascript jquery ajax deep-linking

我目前正在使用 jquery.address 插件来实现深度链接。

例如,我要加载test1.html。我单击该链接,它显示在地址栏上/#/test1。 我只想显示/test1 而不显示主题标签。我使用 PHP 以防用户重新加载页面。

这是我的代码:

JS-

<script type="text/javascript">
/*<![CDATA[*/
$("document").ready(function(){

    function loadURL(url) {
        console.log("loadURL: " + url);
        $("#area").load(url);
    }


    // Event handlers
    $.address.init(function(event) {
        console.log("init: " + $('[rel=address:' + event.value + ']').attr('href'));
    }).change(function(event) {
        $("#area").load($('[rel=address:' + event.value + ']').attr('href'));
        console.log("change");
    })

    $('a').click(function(){
        loadURL($(this).attr('href').replace('', /^#/));
    });

    });

/*]]>*/
</script>

HTML -

<a href="test1.html" rel="address:/test1">Test 1</a> <br />
<a href="test2.html" rel="address:/test2">Test 2</a> <br /> <br /> <br />

Load Area: <br />
<div id="area"></div>

预先感谢您的帮助!

最佳答案

String.replace

loadURL($(this).attr('href').replace(/^#/, ''));

编辑:请注意,^ 表示 "beginning of string"在正则表达式中。这意味着它不会匹配字符串 "/#/test1" 中的任何内容。如果你想删除 /#/ 你应该使用这个:

'/#/test1'.replace(/\/#\//, '');

http://jsfiddle.net/wD7LZ/

关于javascript - JQuery.address - 从 url 中删除 #,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10517124/

相关文章:

函数中的Javascript字符串参数

javascript - 将文件上传到 S3(法兰克福)时出现错误授权 AWS4-HMAC-SHA256

javascript - jQuery - 显示和隐藏电话号码的最后 4 个数字

javascript - 根据文本获取每个 div 内的文本值

javascript - 在 React 中,如何从 Last.fm API 中转义 Hash 标签

javascript - 单击 html 按钮运行 PHP 函数

javascript - 如何动态检查 "checkbox"- jQuery Mobile

javascript - 当两个单独的 Ajax 调用完成时,调用函数的好方法是什么?

jquery - 莫里斯图未更新

javascript - 尝试为 jQuery AJAX 请求添加延迟