Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   JS нажатие ctrl+click (https://javascript.ru/forum/misc/71559-js-nazhatie-ctrl-click.html)

Sayler91 28.11.2017 18:19

JS нажатие ctrl+click
 
Доброе время суток. Подскажите JS код, при котором будут нажаты (ctrl + click) данные 4 ячейки со ссылками одновременно. Должны быть открыты новые вкладки.

<tr role="row" id="0" tabindex="-1" class="ui-widget-content jqgrow ui-row-ltr" style="display: table-row;"><td role="gridcell" style="" title="Гугл" aria-describedby="list1_xcol171"><a class="OpenFormLink" href="https://google.com" target="blank">Гугл</a></td></tr>
<tr role="row" id="1" tabindex="-1" class="ui-widget-content jqgrow ui-row-ltr" style="display: table-row;"><td role="gridcell" style="" title="Маил" aria-describedby="list1_xcol171"><a class="OpenFormLink" href="https://mail.ru" target="blank">Маил</a></td></tr>
<tr role="row" id="2" tabindex="-1" class="ui-widget-content jqgrow ui-row-ltr" style="display: table-row;"><td role="gridcell" style="" title="Яндекс" aria-describedby="list1_xcol171"><a class="OpenFormLink" href="https://yandex.ru" target="blank">Яндекс</a></td></tr>
<tr role="row" id="3" tabindex="-1" class="ui-widget-content jqgrow ui-row-ltr" style="display: table-row;"><td role="gridcell" style="" title="Рамблер" aria-describedby="list1_xcol171"><a class="OpenFormLink" href="https://www.rambler.ru/" target="blank">Рамблер</a></td></tr>

Dilettante_Pro 28.11.2017 18:37

Жмите Ctrl и кликайте
<table>
<tr role="row" id="0" tabindex="-1" class="ui-widget-content jqgrow ui-row-ltr" style="display: table-row;"><td role="gridcell" style="" title="Гугл" aria-describedby="list1_xcol171"><a class="OpenFormLink" href="https://google.com" target="blank">Гугл</a></td></tr>
<tr role="row" id="1" tabindex="-1" class="ui-widget-content jqgrow ui-row-ltr" style="display: table-row;"><td role="gridcell" style="" title="Маил" aria-describedby="list1_xcol171"><a class="OpenFormLink" href="https://mail.ru" target="blank">Маил</a></td></tr>
<tr role="row" id="2" tabindex="-1" class="ui-widget-content jqgrow ui-row-ltr" style="display: table-row;"><td role="gridcell" style="" title="Яндекс" aria-describedby="list1_xcol171"><a class="OpenFormLink" href="https://yandex.ru" target="blank">Яндекс</a></td></tr>
<tr role="row" id="3" tabindex="-1" class="ui-widget-content jqgrow ui-row-ltr" style="display: table-row;"><td role="gridcell" style="" title="Рамблер" aria-describedby="list1_xcol171"><a class="OpenFormLink" href="https://www.rambler.ru/" target="blank">Рамблер</a></td></tr></table>

void() 28.11.2017 18:50

Что-то вроде этого?

window.onload = function(){
			var arr = document.querySelectorAll('.jqgrow');
			for(var i = 0; i < arr.length; i++){
				arr[i].addEventListener('click', myFunc);
			}
		}

		function myFunc(e) {
			if (e.ctrlKey) {
				window.open('https://google.com');
				window.open('https://mail.ru');
				window.open('https://yandex.ru');
				window.open('https://www.rambler.ru/');
			};
		}

Sayler91 28.11.2017 18:55

Цитата:

Сообщение от void() (Сообщение 471451)
Что-то вроде этого?

window.onload = function(){
			var arr = document.querySelectorAll('.jqgrow');
			for(var i = 0; i < arr.length; i++){
				arr[i].addEventListener('click', myFunc);
			}
		}

		function myFunc(e) {
			if (e.ctrlKey) {
				window.open('https://google.com');
				window.open('https://mail.ru');
				window.open('https://yandex.ru');
				window.open('https://www.rambler.ru/');
			};
		}

Нет, я хотел использовать типа

$(document).ready(function(){
		 window.setTimeout(function ()
		{
			$('td:contains("Гугл")').find('a')[0].click();
		},1000)
		window.setTimeout(function ()
		{
			$('td:contains("Майл")').find('a')[0].click();
		},1000)
		window.setTimeout(function ()
		{
			$('td:contains("Яндекс")').find('a')[0].click();
		},1000)
		window.setTimeout(function ()
		{
			$('td:contains("Рамблер")').find('a')[0].click();
		},1000)
	});

Но только не могу эмитировать ctrl+click.

Sayler91 28.11.2017 21:00

Подскажите пожалуйста куда копать. Не получается открыть последовательно вкладки, открывается 1 страница. Можно даже без CTRL.

ruslan_mart 28.11.2017 21:26

Не получится. Браузер блокирует всплывающие окна, если они открываются без действия пользователя.

Sayler91 29.11.2017 06:05

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

Sayler91 02.12.2017 18:22

Не получилось открывать новые вкладки с помощью ctrl + click. Сделал костыль: закрывает текущую вкладку, открывает ссылки из списка и последним открывает изначальную страницу. Вдруг кому-то пригодится.
function openLinkList(linkList) {
  for(var i = 0; i < linkList.length; i++) {
    var a = document.createElement("a");
    a.href = linkList[i];
    a.target="_blank"
    a.click();
  }
};

 
var linkList = [
  "https://google.com", 
  "https://mail.ru", 
  "https://yandex.ru",
  window.location.href
];
 window.close();
openLinkList(linkList);


Часовой пояс GMT +3, время: 16:01.