2009-11-03 1 views
7

私は彼/彼女はjavascriptを無効にしている場合、特定のページにユーザーをリダイレクトします。無駄に<noscript>リダイレクト

<noscript><?php url::redirect('controller/method'); ?></noscript> 
// url::redirect is much like the location header 

...私はこれを行うにはどうすればよい

:私はこのコードを試してみましたか?

+0

これは、非JSクライアントを扱うにはかなり貧弱なアプローチです:http://icant.co.uk/articles/pragmatic-progressive-enhancement/ – Quentin

+0

[No-Javascript Detection Script + Redirect]の可能な複製://stackoverflow.com/questions/9895012/no-javascript-detection-script-redirect)私はjavascriptをせずに見ているからページを防ぎたい – BalusC

答えて

2

その後、メタリフレッシュタグを使用してブラウザがメタリフレッシュタグを読めリダイレクトするように設定されているので、Javascriptを使用して、それを削除し、JSは、それを操作することが手遅れにすることはできません。

唯一の方法は、ダニエルが示唆され何をするか、または全くJavascriptがありませんときに、リンクを表示することです:

<noscript> 
<a href="">Click here to continue</a> 
</noscript> 

それとも、正常に失敗しようとすることができます:Do you plan for javascript being off?

+0

あなたが '' タグを操作するためのJSを使用する必要はありません...それは、 ''

5

のjavascriptが無効になっている場合に基づいてリダイレクトを行う方法はありません。反対にするのはなぜですか?JavaScriptが有効になっている場合はリダイレクトしますか?

<script> 
    window.location = "..."; 
</script> 
+0

...それを行う方法上の任意のアイデア? – yretuta

+1

AJAXでページコンテンツを読み込むことができます。質問:なぜあなたはそれをしたいですか? –

+0

このページはjavascriptに依存しているため、データベースにGoogleマップを追加するのと同じようなものです – yretuta

19

ヘッダがすでに送信されているので、あなたは、標準のHTMLマークアップを使用する必要があります:FirefoxとIEの両方でこれをしようと

<noscript> 
    <meta http-equiv="refresh" content="0;url=noscript.html"> 
</noscript> 

がうまく動作するようです... JavaScriptを有効にすると、 <meta>タグは無視されます。無効にすると、ブラウザはnoscript.htmlにリダイレクトされます。

+0

これはすべての解決策ではありません。 –

+2

もっと説明できますか? – jheddings

+0

有効ですが、バリデーターはそれを嫌います。 noscriptはhead要素には現れず、metaはbody要素に現れません。 metaはnoscript要素に現れません。 XHTML 1.0およびHTML 4.0。 – mauris

0

は、これを追加あなたの体、スタイルの最初の要素、それはスーツ、そしておそらくNOSCRIPTのページへの内部リンクを提供する:

<div onload="return false;"> 
    <!-- PAGE CONTENTS --> 
</div><noscript>JAVASCRIPT IS REQUIRED TO VIEW THIS PAGE</noscript> 

私はこれのより冗長なメソッドを使用します(そのbasicall yでは、モーダルダイアログとして表示され、すべてがきれいです)、クライアントがより互換性のある手段を使用することを許可していないページに表示されます。私はIE6 +と他の主要なブラウザーで大きな成功を収めてテストしました。

関連する問題