콘텐츠 스크립트를 사용하여 DOM의 데이터를 조작하고 있습니다. 나는 사용하고있다 document.execCommand ('copy'); 팝업 페이지에서이 (가) 성공적으로 완료되었습니다.클립 보드 콘텐츠 스크립트 (Chrome 확장자)에 복사/붙여 넣기
이제 콘텐츠 스크립트에서 작동하도록하는 방법을 찾고 있습니다. 콘텐츠 스크립트 here에 대한 제한 사항을 확인했지만 클립 보드 컨트롤이 제한되는지 여부를 이해하지 못합니다. 나는 또한 여기에 답변을 확인했습니다 - stackoverflow,하지만 대부분의 불확실하고 일부는 몇 년 전부터 변경되었을 수도 있습니다 보인다.
제한적이라 할지라도 일종의 해결 방법이있을 수 있습니까?
감사합니다.
나는 현재 가지고있는 스크립트를 게시하고 있습니다.
manifest.json을
{
"name": "Page action by URL",
"version": "1.0",
"description": "Прибавка за обработка на данните от НБДН.",
"background": {
"scripts": ["background.js"],
"persistent": false
},
"page_action" :
{
"default_icon" : "icon-19.png",
"default_title" : "Приложение за НБД за PHP"
},
"permissions" : [
"clipboardWrite",
"clipboardRead",
"declarativeContent",
"activeTab",
"tabs",
"https://nbd.grao.government.bg/graoappshort/*"
],
"icons" : {
"48" : "icon-48.png",
"128" : "icon-128.png"
},
"manifest_version": 2
}
background.js
chrome.runtime.onInstalled.addListener(function() {
// Replace all rules ...
chrome.declarativeContent.onPageChanged.removeRules(undefined, function() {
// With a new rule ...
chrome.declarativeContent.onPageChanged.addRules([
{
conditions: [
new chrome.declarativeContent.PageStateMatcher({
pageUrl: { urlContains: 'nbd.grao.government.bg/graoappshort/' },
})
],
actions: [ new chrome.declarativeContent.ShowPageAction() ]
}
]);
});
});
chrome.pageAction.onClicked.addListener(function(tab) {
chrome.tabs.executeScript(null, {file: 'page-editor.js'});
chrome.tabs.insertCSS(null, {file: "style-inject.css"});
});
및 페이지 editor.js 내부의 기능
function(){
var copyFrom = document.createElement("textarea");
copyFrom.textContent = PoleIME.value;
document.body.appendChild(copyFrom);
copyFrom.focus();
document.execCommand('SelectAll');
document.execCommand('Copy');
//document.body.removeChild(copyFrom);
}
는 것을 확인할 수 있습니다
스크립트를 background page 또는 event page에 : 그 버그가 해결 될 때까지
, 당신은 거기에서 텍스트를 배경 페이지에 데이터를 전송하고 복사해야 스크립트가 전혀 주입되지 않습니까? 'null '대신'tab.id'를 전달해야합니다. – Xan
'PoleIME'이란 무엇입니까? 그것은'page-editor.js'에 포함되어 있습니까? 아니면 페이지 자체의 스크립트에 있습니까? – Xan
예, 스크립트가 삽입되었고 DOM이 성공적으로 조작되고 있는지 확인합니다. PoleIME은 데이터로 채워진 입력 필드입니다. 그것은 스크립트에 포함되어 있습니다. textarea copyForm이 본문에 성공적으로 추가되고 성공적으로 채워지고 선택됩니다. 페이지에 결과가 표시되지만 복사 기능이 작동하지 않습니다. 전체 스크립트가 작동 상태에 있으며 최적화되지 않았고 6600 행입니다. 그래서 그 스크립트가 포함되지 않은 것입니다. –