javascript - Get variable from previous Tab with Chrome Extentions -


i open chromeextention new tab , new website. need copy url previous tab new 1 can't work?

what best way of doing this? looking using clipboard, in javascript doesn't work. how can pass variable new tab?

edit 1

popup.html

<html>   <head>     <title>youtube downloader</title>     <link rel="stylesheet" href="css/style.css">     <script src="scripts/background.js"></script>   </head>   <body>     <input id="download_button" type="button" value="download mp3"/>     <br>     <span id="validation_span"></span>   </body> </html> 

manifest

{     "manifest_version": 2,     "name":"youtube downloader",     "description":"voor het downloaden van de youtube muziek",     "version": "1",     "browser_action": {         "default_icon": "icon.png",              "default_popup": "popup.html"     },     "permissions": [         "tabs"         ,"http://www.youtube-mp3.org/*"     ],     "content_scripts" : [{         "matches" : [ "http://www.youtube-mp3.org/*"]         ,"js" : ["scripts/youtube-mp3.js"]     }] } 

background.js

addeventlistener("load", init, false);   //global variables var succes = 0; var validation_span; var button;  function init(event) {     button = document.getelementbyid("download_button");     button.addeventlistener("click", geturl, false);     }  function geturl(event){     chrome.tabs.getselected(null, function(tab){         maaklayout(event, tab.url);     }); }  function maaklayout(event, url) {     //layout van de nieuwe view     validation_span = document.getelementbyid("validation_span");     var body = document.getelementsbytagname("body")[0];     body.style.width = "300px";     var br = document.getelementsbytagname("br")[0];     br.remove();     button.remove();      var result = urlvalidation(url);      if(succes == 1){         validation_span.style.color = "green";         result = url;         chrome.tabs.create({"url": "http://www.youtube-mp3.org/nl"}, function(newtab){         });     }     if (succes == 0){         validation_span.style.color = "red";     }     validation_span.innerhtml = result; }  function urlvalidation(url){     if(url.indexof('www.youtube.com/watch?v=') >= 0){         succes = 1;         return "url ok";     }else{         succes = 0;         return "only youtube links allowed";     } } 

youtub-mp3.js

chrome.extension.onmessage.addlistener(function(msg, sender, sendresponse) {     alert("binne");     if (msg.action == 'url') {         alert("message recieved!");         var copy = msg;         var inputfield = document.getelementbyid("youtube-url");         inputfield.value = copy;     } }); 

edit

my original answer won't work because message sent before content script has registered onmessage listener.

i able working using chrome.tabs.executescript:

chrome.tabs.create({"url": "http://www.youtube-mp3.org/nl"}, function(newtab) {      var script = "var inputfield = document.getelementbyid(\"youtube-url\"); inputfield.value = \"" + url + "\"";     chrome.tabs.executescript(newtab.id, { code: script });   }); 

you should able remove youtube-mp3.js.


if i've understood you're trying correctly, need make small change code.

in background.js:

// existing code chrome.tabs.create({"url": "http://www.youtube-mp3.org/nl"}, function(newtab){     // additional code     chrome.tabs.sendmessage(newtab.id, {action: 'newurl', url: url});     }); 

youtube-mp3.js:

chrome.runtime.onmessage.addlistener(   function(request, sender, sendresponse) {     if (request.action == "newurl")       // whatever want url       console.log(request.url);   }); 

Comments