JavaScript: найти и заменить часть URL без обновления, HTML5 history.replacestate - PullRequest
0 голосов
/ 02 марта 2012

У меня есть такой URL:

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

Мне нужно string.format заменить GUID в URL-адресе другим 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 голосов
/ 02 марта 2012

JavaScript не имеет string.format, поэтому просто используйте replace.

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