2

<base>開発を簡素化するために、アプリケーションでタグを使用しています。

アンカーがURL+フラグメントにルーティングされるため、アンカーがURLフラグメントのみである場合に発生する「機能」を認識しています。<base>

それを回避するために何ができますか?私はwindow.locationJavascriptで何かをいじったことは一度もありません。しばらくの間それをハックするのではなく、誰かが手っ取り早い、または例を知っていると思います。

これを回避できますか?もしそうなら、アドバイスしてください。

私は試みがなされていないことを示唆する質問をするのは嫌いですが、私はほとんど役に立たないように検索/読んでいます

また、jQueryを使用しているため、バニラJavascriptまたはjQueryを利用する例を歓迎します)


私が一緒にハッキングしたjQueryソリューションですが、永続的なソリューションとして実行可能かどうかはわかりませんが、考えていますか?

$('a').each(function(index){
    if($(this).attr('href').indexOf('#') == 0){
        $(this).attr('href', (window.location.href).replace(/#.*$/, '')
            + $(this).attr('href'));
    }
});
4

2 に答える 2

3

さて、私は今質問を理解していると思います。

これは、GoogleChromeとFirefoxでテストされています。

本文の最後に次のJavaScriptを追加します。

base=document.getElementsByTagName("base"); 
base=base[0].href;

links=document.getElementsByTagName('a');

for(index in links){
    if(links[index].href.indexOf(base+"#")==0){
        links[index].href=document.location+links[index].href.slice(links[index].href.indexOf("#"));
    }
}
于 2011-07-21T19:38:34.020 に答える
0

相対URLは使用しないでください。ベースタグはやのようなURLには影響しませんが、/homeまたはhttp://google.comに影響しabout/usますusers/12

于 2011-07-21T17:07:40.093 に答える