Developer Chrome Extension Rumus

 




Penulisan Script Dasar .json


{"":"","":"","":"","":"","":"","":"","":"","":"","":"","":"","":"",}

Penulisan Variable array:

"":["","",""],






Contoh Manifest.json
{
"name": "My Extension",
"version": "1.0",
"description": "Gets information from Google.",
"permissions":["tabs","activeTab","declarativeContent","storage","https://www.google.com/*"],

"options_page": "options.html",
"background": {
"scripts": ["background.js"],
"persistent": false
},
"Browser_action":{
"Default_popup":"popup.html"
},

"page_action": {
"default_popup": "popup.html",
"default_icon": {
"16": "icon.png",
"32": "icon.png",
"48": "icon.png",
"128": "icon.png"
}
},
"icons":{
"16": "icon.png",
"32": "icon.png",
"48": "icon.png",
"128": "icon.png"

},
"content_scripts": [
{
"matches": ["http://*/","https://*/*"],
"js": ["jquery-3.5.1.min.js","content.js"]
}],

"manifest_version": 2
}





Sintax permisson Chrome Extension
  • "activeTab"
  • "alarms"
  • "background"
  • "bookmarks"
  • "browsingData"
  • "certificateProvider"
  • "clipboardRead"
  • "clipboardWrite"
  • "contentSettings"
  • "contextMenus"
  • "cookies"
  • "debugger"
  • "declarativeContent"
  • "declarativeNetRequest"
  • "declarativeNetRequestFeedback"
  • "declarativeWebRequest"
  • "desktopCapture"
  • "displaySource"
  • "dns"
  • "documentScan"
  • "downloads"
  • "enterprise.deviceAttributes"
  • "enterprise.hardwarePlatform"
  • "enterprise.networkingAttributes"
  • "enterprise.platformKeys"
  • "experimental"
  • "fileBrowserHandler"
  • "fileSystemProvider"
  • "fontSettings"
  • "gcm"
  • "geolocation"
  • "history"
  • "identity"
  • "idle"
  • "idltest"
  • "loginScreenStorage"
  • "loginState
  • "management"
  • "nativeMessaging"
  • "networking.config"
  • "notifications"
  • "pageCapture"
  • "platformKeys"
  • "power"
  • "printerProvider"
  • "printing"
  • "printingMetrics"
  • "privacy"
  • "processes"
  • "proxy"
  • "sessions"
  • "signedInDevices"
  • "storage"
  • "system.cpu"
  • "system.display
  • "system.memory"
  • "system.storage"
  • "tabCapture"
  • "tabs"
  • "topSites"
  • "tts"
  • "ttsEngine"
  • "unlimitedStorage"
  • "vpnProvider"
  • "wallpaper"
  • "webNavigation"
  • "webRequest"
  • "webRequestBlocking"

Background script

  • script
  • persistent
"background": {
"scripts": ["background.js","xxx","xx","xxxx"]
"persistent": false
},



Page action

  • "default_popup"
  • "default_icon"
  • "default_title"
  • "default_popup"
"page_action": {
"default_popup": "popup.html",
"default_icon": {
"16": "icon.png",
"32": "icon.png",
"48": "icon.png",
"128": "icon.png"
},
"default_title": "Google Mail",
"default_popup": "popup.html"

}




Option Page

  • "options_page"
"options_page": "options.html"




Browser action

  • "options_page"
"default_popup": "options.html"




C

Content script
  • "matches"
  • "css"
  • "js"
"content_scripts":[{
"matches": ["http://*/","https://*/*"],
"css": ["CSS.css"],
"js": ["contentScript.js"]
}],






Contoh Script Chrome Extension

Download jquery



Contoh Background.js
chrome.runtime.onInstalled.addListener(function() {
chrome.storage.sync.set({color: '#3aa757'}, function() {
console.log('The color is green.');
});
chrome.declarativeContent.onPageChanged.removeRules(undefined, function() {
chrome.declarativeContent.onPageChanged.addRules([{
conditions: [new chrome.declarativeContent.PageStateMatcher({
pageUrl: {hostEquals: 'developer.chrome.com'},
})],
actions: [new chrome.declarativeContent.ShowPageAction()]
}]);
});
});





Content.js
let changeColor = document.getElementById('changeColor');
...
changeColor.onclick = function(element) {
let color = element.target.value;
chrome.tabs.query({active: true, currentWindow: true}, function(tabs) {
chrome.tabs.executeScript(
tabs[0].id,
{code: 'document.body.style.backgroundColor = "' + color + '";'});
});
};



popup.html

<!DOCTYPE html>
<html>
<head>
<style>
button {
height: 30px;
width: 30px;
outline: none;
}
</style>
</head>
<body>
<button id="changeColor">ccccccccccccccccc</button>
<script src="popup.js"></script>
</body>
</html>



option.html
<!DOCTYPE html>
<html>
<head>
<style>
button {
height: 30px;
width: 30px;
outline: none;
margin: 10px;
}
</style>
</head>
<body>
<div id="buttonDiv">
</div>
</body>
<script src="options.js"></script>
</html>





option.js

let page = document.getElementById('buttonDiv');
const kButtonColors = ['#3aa757', '#e8453c', '#f9bb2d', '#4688f1'];
function constructOptions(kButtonColors) {
for (let item of kButtonColors) {
let button = document.createElement('button');
button.style.backgroundColor = item;
button.addEventListener('click', function() {
chrome.storage.sync.set({color: item}, function() {
console.log('color is ' + item);
})
});
page.appendChild(button);
}
}
constructOptions(kButtonColors);





popup.html
let changeColor = document.getElementById('changeColor');
...
changeColor.onclick = function(element) {
let color = element.target.value;
chrome.tabs.query({active: true, currentWindow: true}, function(tabs) {
chrome.tabs.executeScript(
tabs[0].id,
{code: 'document.body.style.backgroundColor = "' + color + '";'});
});
};



mystyle.css
.spinspinspin{
animation-name:spin;
animation-duration: 1.0s;
animation-interation-count:infinite;

}

@keyframes spin{
0%{
transform: rotate(1440deg);
transform: rotate(0deg);
}
100%{
}
}



frombackground.js
document.querySelector('img#hplogo').classList.add('spinspinspin');




extensi script
console.log()




injeck JS to background 
chrome.tab.executeScript()

iinjeksi js

chrome.tabs.executeScript(null,{file:'./frombackground.js'},()=> console.log('injeksi data'))

aktif tab

chrome.tabs.onActivated.addListener(tab =>{
console.log(tab)
});

get tabId


chrome.tabs.onActivated.addListener(tab => {

chrome.tabs.get(tab.tabId, current_tab_info => {
console.log(current_tab_info.url)

});
});


//chrome.tabs.executeScript(null,{file:'./frombackground.js'},() => console.log('i inject'))

injksi kombinasi if google

chrome.tabs.onActivated.addListener(tab => {
chrome.tabs.get(tab.tabId, current_tab_info => {
if(/^https:\/\/www\.google/.test(current_tab_info.url)){
chrome.tabs.insertCSS(null,{file:'./mystyles.css'});
chrome.tabs.executeScript(null,{file:'./frombackground.js'},()=> console.log('i inject'))

}

});
});


inject css

chrome.tabs.insertCSS(null,{file:'./mystyles.css'})






popup.




Komentar

Postingan populer dari blog ini

Cara membuat Excel search engin Simple Mudah dan Cepat

Belajar Excel Lengkap Memahami Formulas Recently Used ( Pintasan Riwayat Fungsi )

Tutorial Excel Belajar Fungsi Bring Forward, Send Beckward, Selection pane dan Align