当用户未上传文件时,我显示了错误消息。但是当我提交按钮时,它没有基于文本输入中的URL进行重定向。它不断在Please upload a file
上循环。我不确定出了什么问题。应该是用户未上传文件时,它会提示用户上传QR图像,并且该URL将在该URL中解码。 Submit button
将重定向文本输入中的URL。
答案 0 :(得分:1)
现代浏览器阻止了新窗口,甚至阻止了Javascript打开新标签页,以阻止Web开发人员在各处创建无尽的弹出窗口(例如1990年代的Mountain Dew广告)。
实际上... Java脚本可以执行这些操作,但前提是Java发生在用户单击后立即 或其他一些用户交互。如果您延迟操作的发生,那么浏览器会认为您正在弹出并阻止它。您可以获得显示弹出窗口的权限,但是用户永远不会同意这一点,因此浪费时间。
所以您有一些选择:
重定向或立即打开新的标签/窗口!如果Java直接是用户与网页互动的结果,则Javascript可以打开新的标签和窗口
function windowLocate(){
if (document.getElementById("uploadImage").files.length != 0) {
var url = document.getElementById("url").value;
window.open(url);
} else {
alert('Choose a file please');
}
}
显示确认对话框。。如果您必须在重定向之前显示一条消息,则可以使用确认模式。
function windowLocate(){
if (document.getElementById("uploadImage").files.length != 0) {
var url = document.getElementById("url").value;
var confirmed = confirm("You will now be redirected. Click below to confirm.")
if (confirmed === true){
window.open(url);
}
} else {
alert('Choose a file please');
}
}
重定向当前页面!如果用户可以停留在同一页面上,则只需重定向您当前所在的页面即可,没问题!
function windowLocate(){
if (document.getElementById("uploadImage").files.length != 0) {
var url = document.getElementById("url").value;
window.location.assign(url);
} else {
alert('Choose a file please');
}
}