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

Popular posts from this blog

java - Spring Data JPA: Why findOne(id) executing delete query internally? -

python - Mongodb How to add addtional information when aggregating? -

java - Incorrect order of records in M-M relationship in hibernate -