Javascript-форум (https://javascript.ru/forum/)
-   Элементы интерфейса (https://javascript.ru/forum/dom-window/)
-   -   как кликнуть по тексту ссылки (https://javascript.ru/forum/dom-window/71348-kak-kliknut-po-tekstu-ssylki.html)

денис77447327 12.11.2017 15:27

как кликнуть по тексту ссылки
 
<a href="/edit/edit_order_follow?id=1220387">Пополнить</a>

где значение id разное всегда
нужно кликнуть по слову "пополнить" с указание индекса так как оно не одно на странице с разными ссылками

Nexus 12.11.2017 16:35

document.querySelectorAll('a[href^="/edit/edit_order_follow?id="]')[0].dispatchEvent(new Event('click'));

денис77447327 13.11.2017 02:28

спасибо не пойму только почему в консоли возвращается true при данном методе а самого клика нет а есть он только при таком
document.querySelectorAll('a[href^="/edit/edit_order_follow?id="]')[0].click()

ruslan_mart 13.11.2017 06:25

Nexus, в сафари с таким селектором может возникнуть ошибка.

Nexus 13.11.2017 09:59

ruslan_mart, можете поделиться ссылками на страницы освещающие эту проблему?

var select_url='/edit/edit_order_follow?id=',
	links=document.querySelectorAll('a[href^="'+select_url+'"]');
	
if(!links.length && is_safari()){
	links=[].filter.call(document.querySelectorAll('a[href]'),function(node){
		return node.getAttribute('href').indexOf(select_url)===0;
	});
};
if(!!links[0])
	links[0].click();


function is_safari(){
	var ua=navigator.userAgent.toLowerCase();

	return (ua.indexOf('safari')!=-1 && ua.indexOf('chrome')==-1);
}

ruslan_mart 13.11.2017 10:17

Nexus, я точно сейчас не смогу показать пример, но сам с этой проблемой сталкивался несколько раз, когда по каким-то непонятным причинам, safari выдавал ошибку селектора, ходя сам ссылка была вполне валидна и не содержала никаких кавычек. Возможно, там есть некие ограничения с этим, нужно тестировать.

Nexus 13.11.2017 10:39

ruslan_mart, ясно. Благодарю за информацию.


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