SWFAddress: добавление символа "/" в конце URL через JavaScript - PullRequest
0 голосов
/ 14 декабря 2010

как я могу добавить символ / в конце URL, не заставляя пользователя писать его? Я начинаю работать с SWFAddress, используя JavaScript и jQuery напрямую (без Flash), как этот замечательный сайт .

Так что-то вроде этого:

http://mysite.com/section

// and after click to a specific <a ="#">button</a> get
http://mysite.com/section/#/sub-content

// instead of
http://mysite.com/section#/sub-content

Я начал с этого кода, чтобы сделать это:

$(".time_dot, .time_year").click (function () {
    onClickEvent (this);
});

function onClickEvent (dom) {
    var timer = setTimeout (function () {
        SWFAddress.setValue($(dom).parent().attr("id"));
    }, 200);
    // do something else 
}

Метод setTimeout используется, чтобы избежать перезаписи кнопкой <a> метода SWFAddress.setValue, но я не знаю, как изменить URL address на url.com/content#/... на url.com/content/#/....

Как я могу это сделать?

Ответы [ 4 ]

2 голосов
/ 14 декабря 2010

Как уже было сказано, вы не можете изменить URL без принудительной перезагрузки сайта.И я не думаю, что ты этого хочешь. (но это зависит от того, как на самом деле работает SWFAddress.setValue(), если он просто отслеживает URL-адреса внутри (без изменения URL-адреса браузера), тогда вы можете это сделать)

Но я хотелдать вам альтернативу для setTimeout:

$(".time_dot, .time_year").click (function (event) {
    event.preventDefault();
    event.stopPropagation();
    onClickEvent (this);
});

function onClickEvent (dom) {
    SWFAddress.setValue($(dom).parent().attr("id"));
    // do something else 
}

С этим вы предотвратите всплывание события click, а также поменяете действие по умолчанию (которое будет следовать по ссылке).

См. Объект события jQuery .

1 голос
/ 14 декабря 2010

Вы не можете изменить часть пути в URL без перезагрузки страницы.Таким образом, если вы находитесь на http://mysite.com/section,, вы не можете перейти на http://mysite.com/section/#/sub-content без перезагрузки страницы.

0 голосов
/ 14 декабря 2010
function fixUrl(url) {  
    return url.replace(/\/?$/,'/');  
}

//or

function fixUrl(url) {  
    return url.match(/\/$/)  
       ? url  
       : url + '/';  
}
0 голосов
/ 14 декабря 2010

Вы имеете в виду, как

$(".time_dot, .time_year").click (function () {
   setTimeout (function () {
         SWFAddress.setValue("/"+$(this).parent().attr("id")+"/");
    }, 200);

});
...