मैं डीओएम में डेटा में हेरफेर करने के लिए एक सामग्री स्क्रिप्ट का उपयोग कर रहा हूं। मैं document.execCommand ('copy') का उपयोग कर रहा हूं; एक पॉपअप पेज पर सफलतापूर्वक।सामग्री स्क्रिप्ट (क्रोम एक्सटेंशन) पर क्लिपबोर्ड कॉपी/पेस्ट करें
अब मैं इसे सामग्री स्क्रिप्ट पर काम करने के लिए एक रास्ता खोज रहा हूं। मैंने सामग्री स्क्रिप्ट here के लिए सीमाओं की जांच की है, लेकिन मुझे समझ में नहीं आता कि क्लिपबोर्ड नियंत्रण सीमित है या नहीं। मैंने यहां जवाबों की भी जांच की है - स्टैक ओवरफ्लो में, लेकिन ऐसा लगता है कि ज्यादातर अनिश्चित हैं और कुछ कुछ साल पहले हैं इसलिए कुछ बदलाव हुए होंगे।
भले ही यह सीमित है, क्या यह किसी प्रकार का कामकाज संभव है?
धन्यवाद!
मैं वर्तमान स्क्रिप्ट पोस्ट कर रहा हूं जो मेरे पास है।
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);
}
आपको लगता है कि पुष्टि कर सकते हैं लिपि बिल्कुल इंजेक्शन दी गई है? आपको 'null' के बजाय' tab.id' पास करने का प्रयास करना चाहिए। – Xan
'पोलेइम' क्या है? क्या यह आपके 'पेज-एडिटर.जेएस' के भीतर निहित है या क्या यह पृष्ठ की अपनी लिपि में है? – Xan
हां, मैं पुष्टि करता हूं कि स्क्रिप्ट इंजेक्शन दी गई है और डीओएम सफलतापूर्वक छेड़छाड़ की जा रही है। पोलेइम एक इनपुट फ़ील्ड है जो डेटा से भरा हुआ है। इसमें यह स्क्रिप्ट है। Textarea copyForm को शरीर में सफलतापूर्वक जोड़ा गया है और इसे सफलतापूर्वक भर दिया गया है और चुना गया है। मैं पृष्ठ पर परिणाम देखता हूं, लेकिन प्रतिलिपि कार्य काम नहीं करता है। पूरी लिपि एक काम करने की स्थिति में है और अनुकूलित नहीं है और 6600 पंक्तियां हैं - यही कारण है कि मैंने इसे शामिल नहीं किया। –