3

event.value が == to / の場合、URL から # を削除する必要があります。開いている画像への参照を格納する jquery.address を含むライトボックスを持っています。これを閉じると、ウィンドウが上にスクロールするため、# マークを削除する必要があります。

これで # マークを削除することに成功しました: window.location.href.slice(0, -1); しかし、上記のコードでわかるように、これにより、イベントの後だけでなく、ページが読み込まれたときに URL が書き換えられます。

ライトボックスを閉じたときにこの関数が olny と呼ばれる方法で、完了したときにのみこの JavaScript をチェーンするにはどうすればよいですか。

ここに私のコードをコメント付きで添付します。皆さん、ありがとうございました

$.address.change(function(event) {
    curLink = event.value;
    if(curLink != '/') {

    // here my stuff, jquery.address generates url with reference 

    // ex: mysite.com/cat/subcat/page.html#one

    } else {  

        $('#element').animate({opacity:"0"},{duration:100, easing:"quartEaseOut", complete: function () {

        // here I need to remove the hash only after the complete 

        // ex: mysite.com/cat/subcat/page.html#  >  mysite.com/cat/subcat/page.html

        window.location.href.slice(0, -1);           
        $(this).hide(); 
    }});   
  }   
});
4

5 に答える 5

2

これを使用することもできます(これにより、ハッシュが完全に削除され、URL がクリーンアップされます)

history.pushState("", document.title, window.location.pathname);

どちらが変わるか

http://www.google.com/#top

http://www.google.com/
于 2013-09-06T13:21:07.713 に答える
2

これを試して

newHash = window.location.hash.substring(1);

console.log(newHash);

アンカーがある場合、通常は URL の先頭に追加されるため、最初の文字を削除すると、もう問題になることはありません。

または、この方法でそれを行うことさえできれば、必要なものだと思います

newHash = window.location.hash.replace('#', '');

console.log(newHash);
于 2011-02-17T19:02:51.700 に答える
2

それ以外の場合は、URL を操作するための多くの機能をwindow.location.hash = ''開く優れたプラグインがいくつかあります (例: http://ajaxcssblog.com/jquery/url-read-request-variables )。

于 2010-11-25T09:49:29.860 に答える
0

window.location.hash = ''私の場合は動作しません。

window.location.href.slice(0, -1);動作します!私が解決できない問題は、完全な jQuery イベントの後でのみこの JavaScript 命令を連鎖させる方法です (今ではページの読み込み時に発生します)。

私は今ではjQueryの後の愚かなJavaScript呼び出しだと思います

ありがとうございました

于 2010-11-25T10:01:25.863 に答える