DOM'de verileri işlemek için bir İçerik komut dosyası kullanıyorum. document.execCommand kullanıyorum ('copy'); bir popup sayfada başarıyla.Pano Kopyala/İçerik komut dosyasına yapıştır (Chrome Uzantısı)
Artık bir İçerik komut dosyasında çalışması için bir yol arıyorum. İçerik komut dosyaları here için sınırlamaları kontrol ettim, ancak Pano denetiminin sınırlı olup olmadığını anlamıyorum. Ayrıca burada cevapları kontrol ettim - stackoverflow, ama çoğu belirsiz ve bazıları birkaç yıl önce olduğu için değişiklikler olmuş olabilir.
Sınırlı olsa bile, bir tür geçici çözüm bulunması mümkün mü?
Teşekkür ederiz!
Sahip olduğum komut dosyasını şimdi gönderiyorum.
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"});
});
ve sayfa editor.js içindeki işlevi
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);
}
bunu teyit edebilir:
Komut background page veya event page tarih: O hata sabittir kadar
, oradan metni arka plan sayfasına veri göndermek ve kopyalamak zorunda betik enjekte edilir? Sen de 'null' yerine 'tab.id' geçmeyi denemelisin. – Xan
'PoleIME' nedir? "Page-editor.js" dosyanızda yer alıyor mu, yoksa sayfanın kendi komut dosyasında mı? – Xan
Evet, komut dosyasının enjekte edildiğini ve DOM'ın başarıyla işlendiğini doğrularım. PoleIME, verilerle dolu bir giriş alanıdır. Komut dosyasında yer alıyor. Textarea copyForm başarıyla vücuda eklenir ve başarıyla doldurulur ve seçilir. Sonucu sayfada görüyorum, ancak kopyalama işlevi çalışmıyor. Tüm komut dosyası çalışma koşulunda ve en iyi duruma getirilmemiş durumda ve 6600 satırdır - bu yüzden onu eklemedim. –