Warum ist das Dokument.execCommand("einfügen") funktioniert nicht in Google Chrome?
Ich habe ein problem mit meiner extension. Ich möchte das einfügen aus der Zwischenablage.
Bisher habe ich dieses:
function pasteAndGo()
{
document.execCommand('paste')
alert("Pasted")
}
Die Warnung kommt, aber nichts eingefügt worden ist.
Ich habe das Gefühl, es ist die document
Teil, der geändert werden muss, aber ich weiß nicht, was zu tun ist. Irgendwelche Ideen?
- Wo sind Sie die Ausführung dieses Codes?
- Werfen Sie einen Blick auf diese: farter.users.sourceforge.net/blog/2010/11/20/...
- Dieser code ausgeführt wird, der auf einer regulären Webseite, nicht background.html. Jedoch, dies ist nicht mehr eine experimentelle API, und ein eingebauter Teil des Chrome ab version 13 (code.google.com/chrome/extensions/whats_new.html#13), Das bedeutet, es sollte jetzt funktionieren. Auch, ich habe die Berechtigungen für es 🙂
- Wie können Sie Berechtigungen erteilen, um eine reguläre Webseite?
Du musst angemeldet sein, um einen Kommentar abzugeben.
Es verwendet werden, um eine experimentelle clipboard-API in Chrome, aber das wurde entfernt in Chrom 13.
Chrome hat sich auf die mehr standard
document.execCommand('paste')
,document.execCommand('copy')
unddocument.execCommand('cut')
Befehle: https://developer.mozilla.org/en/Rich-Text_Editing_in_Mozilla#Executing%5FCommandsIn Chrome müssen Sie die Berechtigungen Hinzugefügt werden müssen, um Ihre manifest: "clipboardRead" und "clipboardWrite". http://developer.chrome.com/extensions/declare_permissions.html
Bis Chrome 38, diese Zwischenablage-Berechtigungen nur auf Erweiterungs-Seiten wie hintergrund-Skripts. Wie der Chrome-39 -, Inhalts-Skripts können Sie diese auch direkt in die Zwischenablage APIs nach dem deklarieren der Zwischenablage Berechtigungen in der manifest-Datei (crbug.com/395376).
Dies funktioniert gut für mich in einem hintergrund-Seite.
Natürlich Ihre Verlängerung muss noch "clipboardRead" Berechtigung, und verwenden Sie die Nachricht übergeben, um diese Informationen zurück, um Ihre Inhalte Skript:
content.js:
background.js:
Aufrufen
document.execCommand("paste")
wird nicht unterstützt "vernünftigen" Browsern, wegen Sicherheitsbedenken, wie es vielleicht ermöglichen, das Skript zu Lesen, sensible Daten (wie Passwörter) aus der Zwischenablage ein.Dies ist die - Kompatibilitäts-matrix von
document.execCommand("...")
bei clipboard-events:Meine zwei Cent zu diesem:
Können Sie Funktion erkennen die möglichen Befehle, die mit der Dokument.queryCommandSupported Methode.
Können Sie nicht führen Sie es auf einer normalen Seite, nur in einem hintergrund-Seite.
Müssen Sie die
clipboardRead
Erlaubnis zur Nutzungdocument.execCommand('paste')
und dieclipboardWrite
Erlaubnis zur NutzungexecCommand('copy')
undexecCommand('cut')
.Ansonsten werden die Berechtigungen verweigert und nichts wird passieren.
Überprüfen diese link für mehr details.
müssen Sie ein Steuerelement in focues die fähig ist, den Empfang des Inhalts...
Einige Beispiele über die Zwischenablage in JS sehen http://www.geekpedia.com/tutorial126_Clipboard-cut-copy-and-paste-with-JavaScript.html
und http://help.dottoro.com/ljcvtcaw.php
Bezüglich Chrome-Erweiterungen finden Sie unter Copy/Paste Funktioniert Nicht im Chrome-Erweiterung