JQuery.address - 从网址中删除#

时间:2012-05-09 13:27:37

标签: 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>

提前感谢您的帮助!

2 个答案:

答案 0 :(得分:0)

String.replace

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

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

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

http://jsfiddle.net/wD7LZ/

答案 1 :(得分:0)

为什么不拆分它并采取最后一节?

var urlArray = $(this).attr('href').split('/');
var page = urlArray[urlArray.length - 1];
loadURL(page);