How to load multiple URLS in pageWorker for Firefox add-on SDK?

心不动则不痛 提交于 2019-12-11 03:26:01

问题


Using the following example, I can get First paragraph from one URL i.e, ContentURL. ex - http://www.example.com

//main.js 
var getFirstParagraph = "var paras = document.getElementsByTagName('p');" +
                        "console.log(paras[0].textContent);" 

pageWorker = require("sdk/page-worker").Page({
  contentScript: getFirstParagraph,
  contentURL: "http://www.example.com"
});

I would like to get the first paragraph for multiple site URLs.

var urls = ["http://www.example.com", "http://www.example1.com", "http://www.example2.com"]

Is there any way to load multiple URLS to get the multiple results in an array?

I tried like following way, but it goes into infinite loop and doesn't work.

//main.js

var getFirstParagraph = "var paras = document.getElementsByTagName('p');" +
                        "console.log(paras[0].textContent);" +
                        "self.port.emit('loaded');" 


pageWorker = require("sdk/page-worker").Page({
  contentScript: getFirstParagraph,
  contentURL: "http://www.example2.com"
});

pageWorker.port.on("loaded", function() {
var urls = ["http://www.example.com", "http://www.example1.com"];
    for(var i=0; i<urls.length; i++)
    {
  pageWorker.contentURL = urls[i];
    }

});

Any help would be much appreciated.


回答1:


Finally, I've ended up the code like this. It's working good.

var getFirstParagraph = "var paras = document.getElementsByTagName('p');" +
                        "console.log(paras[0].textContent);"

var urls = ["http://www.example.com", "http://www.example2.com"];
for(var i=0; i<urls.length; i++)
    {
pageWorker = require("sdk/page-worker").Page({
  contentScript: getFirstParagraph,
  contentURL : urls[i],
});
}

I didn't find any better option than this. Hope this helps someone.



来源:https://stackoverflow.com/questions/29748993/how-to-load-multiple-urls-in-pageworker-for-firefox-add-on-sdk

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!