2012-01-04 5 views
0

同じテンプレートを使用するページが2つあり、もう一方のページにリダイレクトする必要があります。問題は、1つのテンプレートにのみアクセスできますが、2つのページにはアクセスできないことです。つまり、リダイレクトを行うためにテンプレートにif/elseステートメントを設定する必要があります。私は非常に緑色ですが、私はトリックを行うには次のコードを取得しようとしています...失敗しました。文字列にURLを比較することを使用してJavaScriptをリダイレクトする場合ページ「b」を含むテンプレートを共有する「a」を

var uri = location.href; 

if(uri == 'http://URL-A.com') { 

} else { 
    window.location = "http://URL-B.com"; 
}; 

答えて

0

あなたがdocument.locationを確保するための最初の必要性は、文字列ではなく、オブジェクトで、その後、あなたはそれを比較している、これに対して、文字列を引用符で囲む必要があります。

var uri = document.location.href; 

if(uri == "http://URL-A.com") 
    // not sure what's happening here 
} 
else { 
    window.location="http://URL-B.com"; 
} 

  1. Sidniciousによって示されるようdocument.location.hrefが文字列であるが、コメントで、document.locationは、オブジェクトです。私が最初にこの答えを書いたとき、私を完全に逃した事実。それ以降は修正されました
+2

'document.location'は文字列ではありませんが、' document.location.href'はです。 – s4y

+0

@Sidnicious:多くの感謝、私は訂正し、私の答えにその修正を編集しました。 –

0

理想的には、JavaScriptを使用する代わりにHTTPリダイレクトを行います。それはオプションではない場合でも、ここにあなたの例に問題があります:

if(uri==http://URL-A.com) // Don’t do this 

URLは文字列にするために、その周りに引用符を持っている必要があります。 !=演算子を使用してコードを少しでもきれいにすることもできます。そして、です。普通は同じですが、わかりやすくするためにwindow.locationというだけではなく、通常はlocationというよりベストプラクティスです。また、ブロックの最後にセミコロンを使用する必要はありません。

if (window.location.href != "http://URL-A.com") { 
    window.location = "http://URL-B.com"; 
} 

これでうまくいかない場合は、何かが続いています。

+0

OK。他に何かが起こっているはずです。あなたの提案を無駄に試してみました。 – Kent

+0

確かに、上記のコードをで予約し、それをテンプレートのに配置する必要があります。 – Kent

+0

@Kentええ、 'text/javascript'はデフォルトです(ただし、害はありません)ので、' type'属性は必要ありません。うーん、うまくいかない場合、次のステップは、あなたのブラウザのエラーコンソール(あなたがテストしているブラウザ)を見て、何が起こっているのかを見るために 'console.log'ステートメントを追加することです。たとえば、次のように 'else'文を追加することができます:' else {console.log( "location did not match"); } '。コードは正常に実行されたにもかかわらず、場所が一致しないと、エラーコンソールにメッセージが表示されます。 – s4y

0

これは動作します:

<script> 
    if (location.href !== 'http://URL-A.com') { 
     location = 'http://URL-B.com'; 
    } 
</script> 
  • あなたはあなたが望むものに応じwindow.locationまたはdocument.locationを使用して検討するかもしれません。
  • 等しくない比較を使用できるため、if/elseは不要です。
  • タイプ強制を避けるには、===または!==を使用する必要があります。
関連する問題