Skip to content Skip to sidebar Skip to footer

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

icon

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)"