停止提示符()重定向到输入

时间:2016-11-08 19:37:49

标签: javascript

出于某种原因,我无法找到答案,所以我在这里。

所以,在我的Java EE应用程序中,我有这个:

<a href="javascript:prompt('Make sure the text is selected,
then press either CTRL+C or right click and then \'Copy\'.', '{PASS}');" class="btn btn-success btn-md" role="button">{CHARS} Chars</a>

现在,当我在提示符上按取消时,它会重定向到'null'。如果我按OK,它会重定向到文本输入。

如何停止 所有重定向?比如,取消和OK。

2 个答案:

答案 0 :(得分:1)

假设您确实希望在链接中使用JavaScript,例如使用bookmarklet:

javascript:协议具有隐藏功能。如果将undefined以外的值传递给它,它将被解释为字符串并(基本上)传递给document.write以构建新的HTML文档。

您可以通过查看链接中javascript:nulljavascript:'<!DOCTYPE html><title>Hello</title> World!'的内容来测试这一点。

针对此特定问题的解决方法是确保您永远不会向javascript:返回任何内容,这就是您经常会在链接中看到javascript:void(0)的原因。

您可能没有想要在链接中使用JavaScript:

不要使用不可维护的JavaScript污染您的标记,而是将您的脚本放在它所属的JavaScript文件中。此外,由于您的链接未用于定位新文档,因此请使用<button>一些样式:

&#13;
&#13;
document.querySelector('#example').addEventListener('click', function () {
  console.log('do stuff');
}, false);
&#13;
<button type="button" id="example">{CHARS} Chars</button>
&#13;
&#13;
&#13;

答案 1 :(得分:0)

您不应该使用hrefprompt如果取消则返回null,如果按下则返回输入。这意味着您的a标记会重定向到提示结果。而是使用onclick

<a onclick="doPrompt()" class="btn btn-success btn-md" role="button">{CHARS} Chars</a>

function doPrompt(){
  prompt('Make sure the text is selected, then press either CTRL+C or right click and then \'Copy\'.', '{PASS}');
}

http://codepen.io/nilestanner/pen/KNpjeW