我有一个带有操作页面的表单,目标为_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>
答案 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并再次进行测试。