Javascript-форум (https://javascript.ru/forum/)
-   Javascript под браузер (https://javascript.ru/forum/css-html/)
-   -   Как получить url при клике правой кнопкой мышки ? (https://javascript.ru/forum/css-html/77697-kak-poluchit-url-pri-klike-pravojj-knopkojj-myshki.html)

selevo 08.06.2019 09:10

Как скопировать url при клике правой кнопкой мышки ?
 
Хочу скрипт доработать в tampermonkey...
if (e.target.tagName == 'A' && e.ctrlKey) {
		e.preventDefault();
      navigator.clipboard.writeText(e.target.href);
        console.log(e.target.href);

вот так работает , с такими ссылками:
<a href="/shops/izhevsk" class="header-link-TLsAU header-nav-link-126h3">Магазины</a>



но не копирует ссылку вот такого типа:

<a class="item-link-3sa3s" target="_self" href="/kirovskaya_oblast_kirov/tovary_dlya_kompyutera/hp_6200_pro_lga1155_4x_ddr3_1686238240">
<div class="item-image-22XyX"><img src="//20.img.avito.st/208x156/5649878220.jpg">
</div><div class="item-description-35ofR">

selevo 08.06.2019 16:38

видео
https://youtu.be/JgaXzcOi7Og

Alexandroppolus 08.06.2019 16:47

if (e.ctrlKey) {
  var a = e.target.closest('a[href]');
  if (a && a.href) {
    e.preventDefault();
    navigator.clipboard.writeText(a.href);
    console.log(a.href);
  }
}

selevo 08.06.2019 18:04

спасибо, то что надо !
А как сделать чтобы картинки пропускал ?
Я сделал пока тест на клик по картинке и выход...
Иначе он потом еще url ссылки выдаст на которую пришлепнута картинка.
Но это как-то не очень красиво по-моему.

document.addEventListener('contextmenu',e => 
 {
// берем ссылку на картинку если клик  был по картинке.
          if (e.target.tagName == 'IMG' && e.ctrlKey)
          {
        e.preventDefault();
      navigator.clipboard.writeText(e.target.src);
        console.log("IMG URL: "+e.target.src);
Return;        
  }

// Берем URL ссылки
    let that = e.target.closest('a');
      if(e.target.closest('a') && e.ctrlKey)
      {
        e.preventDefault();
        navigator.clipboard.writeText(that.href);
        console.log("URL:" +that.href);
 

 
      }


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