target =“ _ blank”在Edge中打开新的空白页

时间:2019-07-11 18:55:34

标签: javascript html forms microsoft-edge

我有一个带有操作页面的表单,目标为_blank。我有一个提交输入。我希望新表单显示在新页面中,因此我使用_blank作为目标。

这在Edge以外的所有浏览器中均可正常使用。在MS Edge中打开空白页,而不是操作链接。边缘不支持_blank吗?如何在Edge中解决此问题?我正在使用Microsoft Edge 40.15063.674.0

<form name="textform" action="https://local.worldlingo.com/SVZzHbqCKIvXetXPYQGYntlwJInOOQpml/translate" method="post" target="_blank">
    <script language="javascript"> <!--
    function validate(form) {
      if ((form["wl_url"].value == "") || (form["wl_url"].value == "http://")) {
        alert("Please enter a valid URL.");
        form["wl_url"].focus();
        return false;
      }
      selIndex1 = form["wl_srclang"].selectedIndex;
      selIndex2 = form["wl_trglang"].selectedIndex;
      if (form["wl_srclang"].options[selIndex1].value == form["wl_trglang"].options[selIndex2].value) {
        alert("Please select two different languages.");
        form["wl_trglang"].focus();
        return false;
      }
      return true;
    }
    function showhide(id){ 
      if (document.getElementById) { 
        obj = document.getElementById(id); 
        if (obj.style.display == "none") { 
          obj.style.display = ""; 
        } else { 
          obj.style.display = "none"; 
        } 
      } 
    }
    //-->
    </script>
    <div class="urlForm">
        <input type="hidden" id="wl_info" name="wl_info" value="P266681">
            <p class="normal_text">
                <select name="wl_srclang" class="trg_select">    
                    <option value="auto">Auto Detect</option>
                    <option value="GOOGLE_AF">Afrikaans</option>
                    <option value="GOOGLE_YI">Yiddish</option>
                </select>
                <input type="submit" name="Submit" value="Translate" class="input" onclick="return validate(this.form);">
            </p><br> 
    </div>
</form>

2 个答案:

答案 0 :(得分:1)

啊,著名的边缘。

尝试一下:

function isBrowserEDGE(){
 return /Edge\/\d./i.test(navigator.userAgent)
}

$(document).ready(function(){
    if(isBrowserEDGE()) {
        $('a').attr('download','download');
    } else {
        $('a').attr('target','_blank');
    }
})

答案 1 :(得分:0)

使用您提供的代码,我没有在自己的身边重现此问题。当我提交表单时,操作链接将显示在Edge的新标签中,如下所示:Example gif。我的Edge版本是44.18362.1.0。

我在线搜索并在this post中发现了类似的问题。您还可以检查网站中的SSL是否存在问题,然后使用F12检查控制台中是否存在任何错误。

作为解决方法,您可以使用以下代码在新标签页中打开操作链接:

<script src="https://cdn.staticfile.org/jquery/3.2.1/jquery.min.js" type="text/javascript"></script>
<script>
    function subform() {
        $("#a").attr("target", "_blank").submit(); 
    }            
</script>

<form name="textform" action="https://local.worldlingo.com/SVZzHbqCKIvXetXPYQGYntlwJInOOQpml/translate" method="post" id="a" onsubmit="subform();">
    <input type="submit" name="Submit" value="Translate" class="input" >
</from>

如果以上所有方法均无效,请尝试安装最新版本的Edge并再次进行测试。