0

このスクリプトは、javascript が無効になっているブラウザー用に作成しました。

HTML は次のとおりです。

<a href="http://www.google.com/" onClick="jstest();">Google</a>

Javascript は次のとおりです。

<script type="text/javascript">
    function jstest() {
    alert("Success");
    // show popup
    return false;
    };
</script>

JavaScript が有効になっている場合は、成功を示すポップアップが表示されます。無効になっている場合は、Googleページに移動する必要があります。友達からこうしろと言われました。jsFiddle.net で動作します。しかし、仕事でこれをやろうとするとうまくいきません。

クリックするとポップアップが表示され、ポップアップを閉じるとGoogleページに移動します。

私はそれが同じページにとどまることを望みます。リンクページに移動したくありません。

JavaScriptが無効になっている場合にのみ移動する必要があります。

このスクリプトで何が間違っていますか?

ありがとうございました、

キショア。

4

4 に答える 4

1

ハンドラーを割り当てようとする要素のに、そのスクリプトを含める必要があります。または、そのコードをハンドラーonclickでラップします。onloadそうしないと、要素が解析される前に JS が実行されるため、要素がgetElementById("goo")見つかりません。

ちなみに、インライン html 属性は必要なくonclick、JS でハンドラーを割り当てる必要もありません。jstest()属性が、コードに存在しないグローバル関数を呼び出そうとしています。この部分を削除しdocument.getElementById("goo").onclick =て、インライン html 属性で使用されているものと同じ名前で関数を宣言するだけですonclick

デフォルトでは、jsfiddle はコードをハンドラーでラップするため、jsfiddle.net で動作すると思いますonload(左側のパネルから変更できます)。

于 2013-02-06T11:57:08.453 に答える
0

これをハイパーリンクとして試してください。

<a href="http://www.google.com/" onClick="return jstest();">

onClick内での戻りは、関数からの戻りfalseがハイパーリンクの動作にバブルアップすることを確認する必要があります。

于 2013-02-06T14:43:54.573 に答える
0

タグに onclick が埋め込まれている理由がわかりません

jQuery :

$(function() {
    $("#goo").click(function(e){
      e.preventDefault();
      // Do whatever you want here
    })
})
于 2013-02-06T12:01:37.040 に答える
0

jQueryを使用すると、このようなことができます

$(document).ready(function() {
    $("#goo").click(function(event){
      event.preventDefault();
      alert("Success");
    });
});

お役に立てれば

ここにリンクがあります

于 2013-02-06T12:06:36.663 に答える