javascript - Continue process when popup closes - chrome extension -
i have created chrome extension searches given word, , repeats search, dismissing words found (with popup open). works want take 1 step further , make continues search when popup closed, transferring code background js file no longer loop or continue after popup closed.
app.html
...<script src="jquery.js"></script> <script src="jquery.highlight-3.js"></script> <script src="app.js"></script> </head> <body> <p id="title">search keyword/terms</p> <div id="fields"> <input type="text" id="t1" placeholder="e.g. help, buy.." /> <button class="fa fa-play" id="search_btn" ></button> <button class="fa fa-stop" id ="clear_btn" ></button> </div> </body> </html> app.js
function search(that) { var inputtext = new string (t1.value); var bkg = chrome.extension.getbackgroundpage(); chrome.tabs.executescript(null, {code:"$(document.body).highlight('"+inputtext+"','"+ bkg.random_color()+"')"}); var searchbutton = document.getelementbyid('search_btn'); searchbutton.style.visibility='hidden'; var clearbutton = document.getelementbyid('clear_btn'); clearbutton.style.visibility='visible'; bkg.search_repeat(inputtext); } document.addeventlistener('domcontentloaded', function () { var bkg = chrome.extension.getbackgroundpage(); var searchbutton = document.getelementbyid('search_btn'); searchbutton.addeventlistener('click', search); var clearbutton = document.getelementbyid('clear_btn'); clearbutton.addeventlistener('click', hl_clear); clearbutton.style.visibility='hidden'; var searchquery = document.getelementbyid('t1'); searchquery.addeventlistener('keypress', handle_keypress); var delimfield = document.getelementbyid('delim'); delimfield.addeventlistener('keypress', handle_keypress); }); background.js
function search(that) { var inputtext = new string (t1.value); chrome.tabs.executescript(null, {code:"$(document.body).highlight('"+inputtext+"','"+ random_color()+"')"}); var searchbutton = document.getelementbyid('search_btn'); searchbutton.style.visibility='hidden'; var clearbutton = document.getelementbyid('clear_btn'); clearbutton.style.visibility='visible'; setinterval(function(){ async_search(inputtext); }, 2000); } function search_repeat(keyword) { setinterval(function(){ research(inputtext); }, 2000); } function research(keyword) { chrome.tabs.executescript(null, {code:"$(document.body).highlight('"+keyword+"','"+random_color()+"')"}); }
when use getbackgroundpage call background pages dom , manipulate js runs in foreground popup. want add message listener background page calls process in background pages dom. onmessage , sendmessage
this need.
edit
foreground:
function search(that) { var inputtext = new string (t1.value); var bkg = chrome.extension.getbackgroundpage(); chrome.tabs.executescript(null, {code:"$(document.body).highlight('"+inputtext+"','"+ bkg.random_color()+"')"}); var searchbutton = document.getelementbyid('search_btn'); searchbutton.style.visibility='hidden'; var clearbutton = document.getelementbyid('clear_btn'); clearbutton.style.visibility='visible'; chrome.runtime.sendmessage({ search_repeat: inputtext //send method search_repeat param inputtext }); } and in background js:
chrome.runtime.onmessage.addlistener(function(keyword) { //start message listener , set action. add 'if's here if want more 1. setinterval(function(){ research(keyword.search_repeat); }, 2000); });
Comments
Post a Comment