これはバックグラウンドページでうまく動作します。もちろん
function getClipboard() {
var pasteTarget = document.createElement("div");
pasteTarget.contentEditable = true;
var actElem = document.activeElement.appendChild(pasteTarget).parentNode;
pasteTarget.focus();
document.execCommand("Paste", null, null);
var paste = pasteTarget.innerText;
actElem.removeChild(pasteTarget);
return paste;
};
はあなたの拡張はまだ「clipboardRead」の許可を必要とし、あなたが戻ってあなたのコンテンツのスクリプトにこの情報を取得するために、メッセージパッシングを使用する必要があります。
content.js:
chrome.extension.sendMessage({
cmd: "clipboard", //$NON-NLS-0$
action: "paste" //$NON-NLS-0$
}, function(response) {
if (response.paste) {
var range = document.getSelection().getRangeAt(0);
range.deleteContents();
range.insertNode(document.createTextNode(response.paste));
}
});
背景.js:
function getClipboard() {
var pasteTarget = document.createElement("div");
pasteTarget.contentEditable = true;
var actElem = document.activeElement.appendChild(pasteTarget).parentNode;
pasteTarget.focus();
document.execCommand("Paste", null, null);
var paste = pasteTarget.innerText;
actElem.removeChild(pasteTarget);
return paste;
};
function onClipboardMessage(request, sender, sendResponse) {
if (request.action === "paste") { //$NON-NLS-0$
sendResponse({
paste: getClipboard()
});
}
}
chrome.extension.onMessage.addListener(onClipboardMessage);
あなたはこのコードをどこで実行していますか? – serg
これを見てください:http://farter.users.sourceforge.net/blog/2010/11/20/accessing-operating-system-clipboard-in-chromium-chrome-extensions/ –
このコードは実行中ですbackground.htmlではなく、通常のWebページです。ただし、これは実験的なAPIではなく、バージョン13(http://code.google.com/chrome/extensions/whats_new.html#13)のChromeの一部に組み込まれています。これは今すぐ動作するはずです。また、私はそれのためのアクセス許可を追加しました:) –