Функция window.open .onload работает в Chrome для Mac, но больше ничего - PullRequest
0 голосов
/ 19 сентября 2019

Поэтому я пытаюсь найти способ открыть ссылку в другой вкладке / окне, которая, если указанное целевое окно уже существует, просто переключается на него без перезагрузки страницы, но если названная цель еще не открыта, она загружаетсястраница по умолчанию для этого именованного окна.

Этот код прекрасно работает в Chrome для MacOS, но не более того: ни Safari на том же Mac, ни браузер на ПК, ни Android, ни Linux (не пробовал ios, нокажется маловероятным)

Почему?и есть ли способ сделать это в браузерах и на разных платформах?

<p>
<a href="#" onclick="selectwindow('win1','www.ex1.com');">Link 1</a>
</p><p>
<a href="#" onclick="selectwindow('win2','www.ex2.com');">Link 2</a>
</p><p>
<a href="#" onclick="selectwindow('win3','www.ex3.com');">Link 3</a>
</p>
</div>
<script type="text/javascript">
function selectwindow(winname, url) {
    var newwin = window.open('',winname);
    newwin.onload = function(){
        var loc = newwin.location.href;
        if(loc=='about:blank') {
            window.open(url,winname);
        }
    };
}
</script>

Так что же должно произойти (и это происходит в Chrome на Macbook), что открытие именованного окна с пустым URL-адресом просто переключится на это?окно / вкладка, если оно уже существует, или откройте новое пустое окно / вкладку, если оно не существует.Этот бит отлично работает везде.Объект newwin получает функцию onload, которая определяет, находится ли местоположение около: blank, и если это так, то загружает URL-адрес по умолчанию для этой ссылки.

Однако функция onload никогда не запускается во всех других системах и браузерах.Только на Chrome (текущая версия) на Macbook (может быть, только мой MacBook?) Это работает нормально.Что происходит?

...