1

我目前正在使用 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>

在此先感谢您的帮助!

4

2 回答 2

0

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

var urlArray = $(this).attr('href').split('/');
var page = urlArray[urlArray.length - 1];
loadURL(page);
于 2012-05-09T13:50:44.927 回答
0

字符串.替换

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

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

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

http://jsfiddle.net/wD7LZ/

于 2012-05-09T13:30:21.093 回答