出于某种原因,我无法找到答案,所以我在这里。
所以,在我的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。
答案 0 :(得分:1)
javascript:
协议具有隐藏功能。如果将undefined
以外的值传递给它,它将被解释为字符串并(基本上)传递给document.write
以构建新的HTML文档。
您可以通过查看链接中javascript:null
和javascript:'<!DOCTYPE html><title>Hello</title> World!'
的内容来测试这一点。
针对此特定问题的解决方法是确保您永远不会向javascript:
返回任何内容,这就是您经常会在链接中看到javascript:void(0)
的原因。
不要使用不可维护的JavaScript污染您的标记,而是将您的脚本放在它所属的JavaScript文件中。此外,由于您的链接未用于定位新文档,因此请使用<button>
一些样式:
document.querySelector('#example').addEventListener('click', function () {
console.log('do stuff');
}, false);
&#13;
<button type="button" id="example">{CHARS} Chars</button>
&#13;
答案 1 :(得分:0)
您不应该使用href
。 prompt
如果取消则返回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}');
}