JavaScript:查找&替换一部分URL而不刷新,HTML5 history.replacestate

时间:2012-03-02 12:58:24

标签: javascript jquery html5 history.js

我有这样的网址:

http://site.com/images/961b7d0e50f0462a8828d31bf0874a71/lightbox

我需要string.format将URL中的GUID替换为数组中的另一个GUID(下一个或上一个)而不刷新点击事件。

HTML:

<a id="replaceGUIDnext">Replace GUID to previous in Array</a>
<a id="replaceGUIDprevious">Replace GUID to previous in Array</a>

SCRIPT:

var guids = ['3ffffb5fb7424c3d96f361fc18a753e0', '961b7d0e50f0462c8828c31bf0874a71', '62a96a75f4764c9ea3d9b65a47dce53d'];
var baseURL = http://site.com/images/{1}/lightbox

$('#replaceGUIDnext').click(function(){
     ...something goes here
});

$('#replaceGUIDprevious').click(function(){
     ...something goes here
});

注意{1}应该用string.format替换。

我想使用HTML5 history.replacestate。如果浏览器不支持它,它应该忽略替换(或失败回到工作解决方案)。

1 个答案:

答案 0 :(得分:0)

JavaScript没有string.format所以只需使用replace。

function changeIt( guid ) {
    if( history.replaceState ) {
        var newUrl = baseURL.replace("{1}", guid);
        history.replaceState( { "guid" : guid}, guid, newUrl );
    }
}