Получить ссылку на вкладку, открытую по событию клика на <a> - PullRequest
0 голосов
/ 03 сентября 2018

Можем ли мы получить ссылку на вкладку, которая была открыта, установив атрибут target элемента привязки в _blank.

Я в основном создаю новую скрытую ссылку и добавляю ее в DOM, а затем программно моделирую событие щелчка по этому элементу, есть ли способ получить ссылку на вновь открытую вкладку, как мы можем с помощью window.open, выполнив:

var newTab = window.open('http://www.google.com/');

РЕДАКТИРОВАТЬ: Прежде чем пометить вопрос как дубликат, отметьте, что я вообще не могу использовать window.open, отсюда и этот вопрос.

Ответы [ 2 ]

0 голосов
/ 14 сентября 2018

Если вы не можете использовать код непосредственно внутри якоря, вы можете попытаться получить ссылку впоследствии (не работает в IE). Однако вам нужно установить цель, отличную от _blank, но все равно откроется новая вкладка.

1) Определите имя цели для вашего якоря

<a href="https://google.com" target="myTarget">Click me</a>

2) Получить ссылку с этим "хаком":

var ref = window.open('', 'myTarget');

Для получения дополнительной информации см. https://medium.com/@bluepnume/every-known-way-to-get-references-to-windows-in-javascript-223778bede2d

0 голосов
/ 14 сентября 2018

Есть несколько красных флажков , которые стоит учитывать для функциональности, которую вы хотите создать, прежде чем продолжить:

  1. У вас мало прав (как у разработчика), чтобы принудительно открывать новые ссылки на вкладках браузера. Это основано на предпочтениях пользователя согласно этому ответу

  2. window.open документы указывает, что возвращает null значение «Если окно не может быть открыто» . Вы можете использовать это, чтобы свободно проверить, было открыто новое окно или нет. Однако это может не совпадать в разных браузерах.

Я предложу вам посмотреть другие варианты (если таковые имеются), прежде чем идти по этому пути.

Всего наилучшего:)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...