2

1 ページの横型 Web サイトの訪問者を「ホーム」と見なされる部分 (本文の中央) にリダイレクトさせたいと考えています。現在、メインの URL にアクセスすると、横型の Web サイトの一番左の部分だけが表示されます。

問題は、訪問者が #Home アンカーにリダイレクトされることなく、アンカー リンクで Web サイトの他の部分を共有できるようにしたいということです。

だから私が基本的に欲しいのは:

  • 訪問した URL に # が含まれている場合、何もしない (すべてのアンカー リンクに # が含まれているため)
  • 訪問した URL に # が含まれていない場合は、#Home アンカーにリダイレクトします。(# が含まれていない場合は、URL が無効であるか、URL にアンカーがないだけでホームページにアクセスしていると見なされます。

今、私はこのJSコードを持っています:

if (window.location.href.indexOf('#') > -1){
    // do nothing   
}
else {
    top.location.href = "http://www.url.com/#Home";
}

このコードの何が問題なのですか? また、これを適切に行うにはどうすればよいですか?

4

2 に答える 2

1

これは機能します:

if(!!~window.location.href.indexOf('#')){
    //do nothing   
}else{
    top.location.href = "http://www.url.com/#Home";
}

パーツは、の結果を適切なブール値に!!~キャストします。indexOf!!true-ishまたはfalse-ishの値をtrueとにキャストします。文字列に針()が含まれている場合、falseチルダ(~)はの出力をtrue-ishの値に変換します)ìndexOf"#"

これにより、GoogleChromeで指定されたURLでページが再読み込みされます。

于 2012-11-28T15:20:32.493 に答える
1

ホームと呼ばれる Web ページのどこかにアンカーがあると思います。クリックをエミュレートしてみてください。お気に入り:

$('[href="#Home"]').click();
location.href = location.href+ '#Home';
于 2012-11-28T15:19:58.673 に答える