1
<script>
function test() {
var name=prompt ("Some question / text")
if (name.toLowerCase()=="TextToBlock") {
alert ("text");
name.preventDefault();
}
else {
}
}
</script>


<body>
< a id="link"  onclick="test()" href="http://www.example.com">Text</a>
</body>

誰かがプロンプト ボックスに「TextToBlock」と入力すると、ユーザーがリンクの場所に移動できないようにしたいと思います。

ありがとう。

4

2 に答える 2

1

eventクリック ハンドラーからオブジェクトを取得するだけです。(フィドルhttp://jsfiddle.net/amyamy86/pJvZd/を参照)

function test(event) {
    event = event || window.event;
    var name = prompt("Some question / text")
    if (name.toLowerCase() === "texttoblock") {
        alert("text");
        event.preventDefault();    // block link from working
    } else {
    }
};

<body>
    <a id="link"  onclick="test()" href="http://www.example.com">Text</a>
</body>

Javascript イベント オブジェクトの詳細: http://javascript.info/tutorial/obtaining-event-object

また、===厳密な比較にも使用します。また、名前を変換したので、小文字.toLowerCase()で比較する必要があります。texttoblock

于 2013-03-20T17:33:28.947 に答える
0

必要なものはすべて 1 行で:

<script>
  function test() {
    return "texttoblock" === prompt("Some question / text").toLowerCase() ? (window.event.preventDefault(), alert("text"), !1) : !0
  };
</script>

<body>
  <a id="link" onclick="test()" href="http://www.example.com">Text</a>
</body>

デモ: JSFiddle


PS: ユーザーが "TextToBlock" (大文字と小文字を区別する) を入力したときにリンクが読み込まれないようにする場合は、テスト関数で "texttoblock" を "TextToBlock" に変更し、.toLowerCase().

于 2013-03-20T17:30:51.427 に答える