2012-02-08 4 views
0

私たちはPHPプロジェクトの一部でJSONを使用しています。 HREF部分は、以下のようなものが含まれているので、編集部分は、JSONによってプログラムされています:Javascriptが有効かどうかに基づいて異なるアプローチを取る方法は?

<a href="javascript:void(0);" id="button">Edit</a> 

JS場合は、上記のリンクは動作しませんので、我々は、Javascriptが無効になっているならば、次のようにURLを変更することを確認したいです無効です:

<a href="./edit.php?id=12&text=some_text_here" id="button">Edit</a> 

私たちは<noscript>を試しましたが、成功しません。上記のようなことをする方法、私たちはここで立ち往生しています。
私は前もって感謝します。

答えて

0

あなたはこのような何かを行うことができます:あなたはあなたのクリックハンドラからfalseを返す場合は、JavaScript対応のブラウザがリンクの場所に移動しません

<a href="./edit.php?id=12&text=some_text_here" id="button">Edit</a> 
<script type='text/javascript'> 
    // ...or however you assign a click handler to the element 
    document.getElementById('button').onclick = function() { 
    // Do Javascript stuff here 
    return false; 
    }; 
</script> 

。 Javascriptが無効になっていると、リンクは通常どおりに行われます。

+0

あなたは頭の爪を打つ。 – ALH

8

デフォルトではJavascript以外の状態になります.Javascriptを使用すると、リンクの次の部分をキャンセルできます。 Javascriptのないユーザーはリンクをたどり、それを有効にしたユーザーはリンクをたどりません。

+0

うわー!私はそんなことは考えていませんでした。 tnx。 – ALH

+0

これが唯一の方法です。 'href'属性には' javascript:void(); 'や空白のハッシュ(例えば' href = "#" ')を含めてはいけません。それは悪い習慣です。 – MMM

+0

@MMMそれはなぜですか? – ALH

1

たぶん、あなたは、PHPのリンクhref="./edit.php?id=12&text=some_text_here"を使用して、通常、あなたのページを作成し、ドキュメントがロードされたときにjQueryを使って機能のjavascript:void(0);

例で<a>タグのhref属性を置き換えますJavaScript関数を実行することができます

$('a.button').attr('href', 'javascript:void(0);'); 

ユーザーにJavascriptがない場合、href属性は更新されません。

+0

彼らはユーザアクションで何かをしたいと思うので、 "href"属性を上書きするのではなく、 "クリック"リスナを添付してfalseを返すほうが理にかなっています。 – Pickle

+0

実際には#ボタンではなく、ボタンでなければなりませんが、とにかく感謝します。 +1 – ALH

1

"progressive enhancement"として知られているものを使用したい場合があります。これは、基本的には、JavaScriptが有効になっていないかのようにHTMLを記述し、JavaScriptを使用して機能を拡張することを意味します。

これは通常、イベントを添付し、ページロード時に呼び出される関数内でDOMなどを変更することで実現されます。

+0

偉大な先端tnx +1 – ALH

関連する問題