Return to Snippet

Revision: 25793
at April 9, 2010 03:43 by knedle


Initial Code
jQuery.repairLink2Anchor = function() {
    // exists tag BASE
    if ($("base").length) {
        // regular expression for anchor link
        var re1 = /#([\w-]+)/; // anchor parts
        var re2 = /^#([\w-]+)/; // only anchor
        // read current url
        var thisUrl = document.location.href;
        // remove anchor from current url
        thisUrl=thisUrl.replace(re1,"");
        // inicialization
        var href = '';
        var anchor = '';
        // loop all A tags whith attribute href
        $("a[href]").each(function(){
            href = $(this).attr("href");
            // check - href is anchor?
            if (re2.test(href)) {
                anchor = href.match(re2);
                $(this).attr("href", thisUrl + '#' + anchor[1]);
            }
        });
    }
}

/*
start this jQuery function with:
$.repairLink2Anchor();
*/

Initial URL


Initial Description
on using any wysiwyg editor (f.e. CKEditor) is inserted link to anchor on same page in this form: [a href="#anchor"]text[/a]

if on web site is used tag BASE, anchors links are wrong - on all page are on this url: www.domain.com/#anchor

this function repair this anchor link to correct url

Initial Title
jQuery: repair anchors link on web with BASE tag

Initial Tags
javascript, jquery

Initial Language
jQuery