0

Testseite: https://www.google.comWie in die Zwischenablage kopieren über chrome.notification.create mit chrome.notification.onClicked in einem Firefox WebExtension Add-on?

Es in Chrome funktioniert, aber in Firefox Nightly 52.0a1 es mir diese Fehlermeldung gibt, wenn auf der Benachrichtigung geklickt:

document.execCommand ('cut'/'Kopie') wurde abgelehnt denn es war nicht aus dem Inneren einer kurzen Laufnutzergenerierten Ereignishandler

copyTextToClipboard() Funktion von Copy to Clipboard in Chrome Extension

genommen genannt wurde

manifest.js

{ 
    "description": "Test for JSON Notifiaction + Clipboard Copy", 
    "manifest_version": 2, 
    "name": "Test3", 
    "version": "1.0", 

    "permissions": [ 
     "<all_urls>", 
     "clipboardWrite", 
     "notifications", 
     "webRequest" 
    ], 

    "background": { 
     "scripts": ["background.js"] 
    } 
} 

background.js

'use strict'; 
let JSON_obj = { 
     "name" : "ABCDEFG", 
     "age" : 3, 
      }; 

function logURL(requestDetails) { 
    // filter rules to check requestDetails.url for specific parameters { 
     notify(JSON_obj); 
    // } 
} 

function notify(notifyMessage) { 
    var options = { 
     type: "basic", 
     iconUrl: chrome.extension.getURL("icons/test.png"), 
     title: "", 
     message: JSON.stringify(notifyMessage, null, "\t") 
    }; 

    chrome.notifications.create("uniqueID3", options); 
} 

chrome.notifications.onClicked.addListener(function() { 
    console.log('Clicked notification message text: ', JSON_obj); 
    copyTextToClipboard(JSON.stringify(JSON_obj, null, "\t")); 
}); 

function copyTextToClipboard(copyText) { 
    var copyFrom = document.createElement("textarea"); 
    copyFrom.textContent = copyText; 
    var body = document.getElementsByTagName('body')[0]; 
    body.appendChild(copyFrom); 
    copyFrom.select(); 
    document.execCommand('copy'); 
    body.removeChild(copyFrom); 
    } 


chrome.webRequest.onBeforeRequest.addListener(
    logURL, { 
     urls: ["<all_urls>"] 
    } 
); 
+0

Die Dokumentation ist ziemlich klar auf diesem, * "In Firefox 41 und später, Zwischenablage-Fähigkeit sind standardmäßig aktiviert in jedem Event-Handler * *** das ist in der Lage, ein Fenster zu öffnen (halb-vertrauenswürdige Skripte) *** *. "* Ich glaube nicht, dass es anders geht, als Flash oder andere Plugins zu verwenden, die die Verwendung von Flash vereinfachen, wie ZeroClipBoard . – adeneo

+0

Also, wenn ich ein Pop-up-Fenster in der onClicked.addListener() -Funktion hinzufügen würde, könnte es funktionieren? – Vega

+0

https://bugzil.la/1197451 –

Antwort

Verwandte Themen