target = "_blank", открывающий новые пустые страницы в Edge - PullRequest
0 голосов
/ 11 июля 2019

У меня есть форма со страницей действий и цель как _blank. У меня есть предложение. Я хочу, чтобы новая форма отображалась на новой странице, поэтому я использовал _blank в качестве цели.

Это правильно работает во всех браузерах, кроме Edge. Пустые страницы открываются в MS Edge вместо ссылки на действие. _Blank не поддерживается в edge? Как мне это исправить в 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 ]

1 голос
/ 11 июля 2019

Ах, знаменитый Край.

Попробуйте это:

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

$(document).ready(function(){
    if(isBrowserEDGE()) {
        $('a').attr('download','download');
    } else {
        $('a').attr('target','_blank');
    }
})
0 голосов
/ 12 июля 2019

С кодом, который вы предоставили, я не воспроизвел проблему на моей стороне. Когда я отправляю форму, ссылка действия отображается в новой вкладке Edge, например: Пример gif . И моя версия Edge 44.18362.1.0.

Я искал в Интернете и нашел похожую проблему в этой записи . Вы также можете проверить, есть ли что-то не так с 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 и протестировать ее снова.

...