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
Post a Comment