简体   繁体   中英

Chrome extension

I am a novice at this and am trying to make a chrome extension for showing me in the popup window the id of all elements with certain class name in the website. I wanted to know if my implementation was the best option to resolve the matter. Thanks for your help, and sorry for my poor english.

manifest.json

{
  "name": "Test",
  "version": "1.0",
  "manifest_version" : 2,
  "description": "", 

  "browser_action": {
    "default_icon": "images/icon.png",
    "default_popup": "popup.html"
  },  
  "permissions": [ "tabs","http://*/*" ]  
}

popup.html

<!doctype html>
<html>
  <head>
    <style>
        body{
          height: 150px;
          width: 800px;
          overflow: hidden;
          margin: 0px;
          padding: 0px;
          background: white;
        }
    </style>
    <script src="scripts/popup.js"></script>
  </head>
  <body>    
  </body>
</html>

popup.js

  //  Inserting javascript code
  chrome.tabs.executeScript(null, {file: "scripts/content.js"});  

  // Sending request
  chrome.tabs.query({active: true, currentWindow: true}, function(tabs) {
    chrome.tabs.sendMessage(tabs[0].id, {greeting: "hello"}, function(response) {
    document.write(response.farewell);
    });
  }); 

content.js

// This function gets all the id of the elements that have a class name X and 
// returns them in a string separated by ",".
function getId(className) {
   // I get all elements containing className
   var elements = document.getElementsByClassName(className);   

   // Creating array with id of the elements
   var idElements= new Array();
   for (var i = 0; i < elements.length; i++) {
    idElements[i]=elements[i].id;
   }

   // Concatenate all id
   var list = idElements.join(" , ");
   return list;
}

var result=getId("classNameTest");

// Listening for message from popup.js
chrome.runtime.onMessage.addListener(
  function(request, sender, sendResponse) {
    if (request.greeting == "hello")
      sendResponse({farewell: result});
  });

Any feedback is appreciated, thanks!

U have not registrd content script file in ur manifest file...check the below link for more details...else other work seems to be fine

http://developer.chrome.com/extensions/content_scripts.html

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM