javascript - 当 url 位于文本输入中时,URL 未重定向

标签 javascript jquery html

当用户未上传文件时,我执行了错误消息。但是当我提交按钮时,它没有根据文本输入中的 url 进行重定向。它一直在请上传文件上循环。我不确定出了什么问题。应该是当用户没有上传文件时,会提示用户上传二维码图片,并且url中的url会被解码。 提交按钮将重定向位于文本输入中的网址。

最佳答案

现代浏览器会阻止 JavaScript 打开新窗口,甚至新选项卡,以防止 Web 开发人员在各处创建无休止的弹出窗口(想想 1990 年的 Mountain Dew 广告)。

实际上...Javascript 可以做这些事情,但前提是它在用户点击或其他一些用户交互之后立即发生。如果您延迟了操作的发生,那么浏览器会认为您正在执行弹出窗口并阻止它。您可以获得显示弹出窗口的权限,但用户从不同意,所以这是浪费时间。

所以你有几个选择:

立即重定向或打开新选项卡/窗口!如果用户与网页交互的直接结果,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');
    }
}

关于javascript - 当 url 位于文本输入中时,URL 未重定向,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52828545/

相关文章:

javascript - WebSockets、Comet、AJAX 和长轮询

javascript - Angular - 如何使用 Angular CLI 创建子组件

javascript - 将数据填充到 TextArea 和 jquery 对话框中

javascript - 将具有相同类的 DIV 加载到模态对话框中

javascript - HTML 元素仅在输入提示后显示

c# - 安全地将换行符插入 HTML

javascript - 追加元素的最大数量

javascript - 类型错误:无法读取未定义的属性 'emit'

jquery - 为 JQUERY 数据表中新插入的行指定类

jquery - 使用 HTML5 data- 属性进行多列排序