基本上,我需要进行一次检查。
假设有这段代码:
假设有这段代码:
prompt("是或否?")
用户必须在此处点击答案。在JavaScript中没有一种方法可以“回答”用户的问题...正确吗?我知道的一切都表明这是不可能的...但是想要先在这里三重检查一下。prompt("是或否?")
用户必须在此处点击答案。在JavaScript中没有一种方法可以“回答”用户的问题...正确吗?我知道的一切都表明这是不可能的...但是想要先在这里三重检查一下。不行。
prompt()
立即弹出一个模态对话框,并阻止所有后续脚本执行,直到输入值。没有机会在任何时候拦截或处理它,因为在它弹出的时候不允许运行任何代码。
也许你想要一种不那么侵入式的方式来弹出对话框,比如 jQuery UI 对话框
等等,所以你似乎更关心它可能被篡改,你不希望它被篡改?
如果是这样,我的答案仍然正确,但有其他方法可以解决它。例如,在运行之前覆盖 prompt()
函数以执行您想要的操作。此代码片段将防止出现任何提示并硬编码特定的返回值。
window.prompt = function() { return 'spoofed' };
var name = prompt("What's your name?"); // no prompt appears
console.log(name); //=> 'spoofed'
如果不知道你想要实现什么,很难建议如何进行操作。但是,如果你想要一个能够回答“你是人类吗?”这个问题的提示,那么它并不可靠,因为它很容易被绕过。
不可以在JS代码中回答prompt()。
onJsAlert
方法:public boolean onJsAlert(WebView view, String url, String message,
final android.webkit.JsResult result) {
builder.setTitle(ActivityTitle)
.setMessage(message)
.setPositiveButton("OK",
new AlertDialog.OnClickListener() {
public void onClick(DialogInterface dialog,
int which) {
result.confirm();
}
}).setCancelable(false).create().show();
return true;
}
prompt()
? - Alex Wayne