SWFAddress: добавление символа "/" в конце URL через JavaScript

Как я могу добавить / полукокса в конце 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 ответа

Решение

Как уже было сказано, вы не можете изменить 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.

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

function fixUrl(url) {  
    return url.replace(/\/?$/,'/');  
}

//or

function fixUrl(url) {  
    return url.match(/\/$/)  
       ? url  
       : url + '/';  
}

Ты имеешь ввиду как

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

});
Другие вопросы по тегам