Search code examples
javascriptjqueryurlswfaddress

SWFAddress: adding "/" char at the end of an URL via JavaScript


how can I add the / char at the end of the URL without force the user to write it? I'm starting to work with SWFAddress using JavaScript and jQuery directly (without Flash) like this wonderful site.

So something like this:

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

I've started with this code to do it:

$(".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 
}

The setTimeout method is used to avoid the <a> button overwrite the SWFAddress.setValue method, but I don't know a way to change the URL address to url.com/content#/... to url.com/content/#/....

How can I do that?


Solution

  • As already said, you cannot change the URL without forcing a reload of the site. And I don't think you want that. (but it depends on how SWFAddress.setValue() actually works, if it just keeps track of the URLs internally (without changing the browsers URL) then you can do it)

    But I wanted to give you an alternative for 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 
    }
    

    With this you prevent the click event from bubbling up and also prevent the change the default action (which would be following the link).

    See jQuery event object.