Скрип не копирует url некоторых картинок
Вложений: 1
Скрипт:
// ==UserScript== // @name js_ все сйты ссылка в буфер по CTRL+ПКМ // @namespace [url]http://tampermonkey.net/[/url] // @version 0.1 // @description try to take over the world! // @author You // @match [url]http://*/*[/url] // @match [url]https://*/*[/url] // @grant none // ==/UserScript== (function() { 'use strict'; document.body.oncontextmenu = function(e) { if (e.target.tagName == 'IMG' && e.ctrlKey) { e.preventDefault(); navigator.clipboard.writeText(e.target.src); console.log("IMG URL: "+e.target.src); return; } var that = e.target.closest('a'); if (that && e.ctrlKey) { e.preventDefault(); navigator.clipboard.writeText(that.href); console.log("\n"+ "URL ссылки:" +that.href) } } /* document.addEventListener('contextmenu',e => { if (e.target.tagName == 'IMG' && e.ctrlKey) { e.preventDefault(); navigator.clipboard.writeText(e.target.src); console.log("\n"+ "IMG URL: "+e.target.src); return; } let that = e.target.closest('a'); if(e.target.closest('a') && e.ctrlKey) { e.preventDefault(); navigator.clipboard.writeText(that.href); console.log("\n"+ "URL ссылки:" +that.href); } }); */ // Your code here... })(); Вот такую ссылку берет <div class="styles-root-12rcO"><img class="styles-img-2OLWK" itemprop="image" src="//09.img.avito.st/208x156/5735477009.jpg" alt="Корпус CaseLabs Merlin SM8 чёрного цвета"></div> А эту нет. Как решить ? <div class="attachcontent"> <a href="./download/file.php?id=37007&mode=view"><img src="./download/file.php?id=37007&t=1" alt="im765.jpg"></a><br> <span class="gensmall">im765.jpg [ 227.15 Кб | Просмотров: 774 ]</span> http://forum.easyelectronics.ru/view...24580&start=75 |
Цитата:
|
))
да там вроде больше ниче важного нет влияющего на результат вставил весь скрипт |
Цитата:
Тестовый пример это файл с минимальной разметкой и кодом, позволяющий иллюстрировать проблему. Благо на этом форуме валом таких! А ты как кидал куски, так и продолжаешь. Только кусок теперь больше... |
Цитата:
if(isSecureContext) { navigator.clipboard.writeText(url); } else { // ОПАСНОЕ КОПИРОВАНИЕ ТЕКСТА const input = document.createElement("input"); document.body.appendChild(input); input.value = url; input.style.cssText = ` position: fixed; top: 0; opacity: 0; `; input.focus(); input.select(); const result = document.execCommand("copy"); if(result === "unsuccessful") { console.error("Failed to copy text."); } document.body.removeChild(input); } Я вижу, что вы используете скрипт для GM или TM. Вы можете использовать тогда метод GM.setClipboard. // ==UserScript== // @name Копировать адрес картинки/ссылки Cmd+RightClick // @namespace http://tampermonkey.net/ // @version 0.1 // @description try to take over the world! // @author You // @match http://*/* // @match https://*/* // @grant GM.setClipboard // ==/UserScript== addEventListener("contextmenu", event => { const { target, metaKey, ctrlKey } = event; if(!metaKey && !ctrlKey) return; let url; if(target.nodeName === "IMG") { url = target.src; } else { const link = target.closest("a"); if(link) url = link.href; } if(url == null) return; event.preventDefault(); GM.setClipboard(url); console.log(`URL: ${url}`); }); Цитата:
|
Цитата:
|
selevo,
Прикол в том что e.target не всегда будет img даже если вы кликаете по картинке и точно не промахиваетесь. поверх может быть какой нибудь овер, или img может быть фоном. |
как по-свободнее будет, проверю.
Спасибо. Malleys, |
Часовой пояс GMT +3, время: 11:26. |