Функция тайм-аута для новой вкладки - PullRequest
0 голосов
/ 09 мая 2018

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

<script>

var newWin;

function validatePass(){
    if(document.getElementById('password').value == 'Techsoc'){
       newWin = window.open('https://docs.google.com/spreadsheets/d/e/2PACX-1vRsNGb741vTBtSGlzbxnTsoZpFMs0l9ZMrD54uE4XGy6FvSMmNfp3RPWvDU3vI32iSIp07CEshGLo0M/pubhtml');
           }else{
        alert('Incorrect Password, please try again.');
        return false;
setTimeout(function(){newWin.close()}, 5000);
        }
}
</script>

1 Ответ

0 голосов
/ 09 мая 2018

Проблема была в том, что время ожидания было в операторе else, когда новое окно было создано в if. Теперь, если вы введете пароль и нажмете кнопку, откроется новая вкладка и закроется по истечении времени, установленного в тайм-ауте.

<input type="password" id="password"></input>
<button OnClick="validatePass()">Log In</button>
<script>

    var newWin;

    function validatePass() {
        if (document.getElementById('password').value == 'Techsoc') {
            newWin = window.open('https://docs.google.com/spreadsheets/d/e/2PACX-1vRsNGb741vTBtSGlzbxnTsoZpFMs0l9ZMrD54uE4XGy6FvSMmNfp3RPWvDU3vI32iSIp07CEshGLo0M/pubhtml');
            setTimeout(
                function () {
                    newWin.close()
                }, 5000);
        }
        else {
            alert('Incorrect Password, please try again.');
            return false;
        }
    }
</script>
...