Сообщение от selevo
|
А эту нет. Как решить ?
|
Копирование текста в буфер обмена доступно только в безопасном контексте. Также вы можете попробовать опасное копирование текста.
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}`);
});
Сообщение от ksa
|
Тестовый пример это файл с минимальной разметкой и кодом, позволяющий иллюстрировать проблему.
|
А это не иллюстрирует? Или ваше иллюстрировать имеет некий тайный смысл?