网址在文本输入中时,网址未重定向

时间:2018-10-16 05:35:51

标签: javascript jquery html

当用户未上传文件时,我显示了错误消息。但是当我提交按钮时,它没有基于文本输入中的URL进行重定向。它不断在Please upload a file上循环。我不确定出了什么问题。应该是用户未上传文件时,它会提示用户上传QR图像,并且该URL将在该URL中解码。 Submit button将重定向文本输入中的URL。

1 个答案:

答案 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');
    }
}