Execute Script After Click In Popup.html (chrome Extension)
I am trying to execute javascript on a page when I click on a button in popup.html. I tried to use such a way: In background.js: chrome.tabs.onUpdated.addListener(function(tabId, c
Solution 1:
I wrote a demo for your need.
https://gist.github.com/greatghoul/8120275
alert.js
alert('hello ' + document.location.href);
background.js
// empty file, but needed
icon.png
manifest.json
{"manifest_version":2,"name":"Click to execute","description":"Execute script after click in popup.html (chrome extension) http://stackoverflow.com/questions/20764517/execute-script-after-click-in-popup-html-chrome-extension.","version":"1.0","icons":{"48":"icon.png"},"permissions":["tabs","<all_urls>"],"browser_action":{"default_icon":"icon.png","default_popup":"popup.html"},"background":{"scripts":["background.js"],"persistent":false}}
popup.html
<!DOCTYPE html><html><bodystyle="width: 300px">
Open <ahref="http://stackoverflow.com"target="_blank">this page</a> and then
<buttonid="clickme">click me</button><scripttype="text/javascript"src="popup.js"></script></body></html>
popup.js
// var app = chrome.runtime.getBackgroundPage();functionhello() {
chrome.tabs.executeScript({
file: 'alert.js'
});
}
document.getElementById('clickme').addEventListener('click', hello);
Solution 2:
You can also use Messaging:
in popup.js
document.getElementById("clicked-btn").addEventListener("click", function(e) {
chrome.runtime.sendMessage({'myPopupIsOpen': true});
});
in background.js
chrome.runtime.onMessage.addListener(function(message, sender) {
if(!message.myPopupIsOpen) return;
// Do your stuff
});
Not tested but should works, further informations about Messaging.
Post a Comment for "Execute Script After Click In Popup.html (chrome Extension)"