<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”,就会阻止用户进入链接位置。
感谢。
答案 0 :(得分: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
进行比较。
答案 1 :(得分:0)
您只需要一行就可以了:
<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()
。