如何在Chrome扩展程序的后台加载网址?

时间:2016-03-14 16:49:28

标签: javascript html google-chrome google-chrome-extension

目前我加载标签并打开我需要的网址并从中抓取数据。 但这看起来很破旧,我不想打开用户面前的标签。

有几个Chrome扩展程序可以从网站上抓取数据,但是如果不在选项卡中加载页面,它们是如何做到的。 在iframe中加载网址是不可能的bcoz在标题中有一个选项“CROSS-ORIGIN”。

2 个答案:

答案 0 :(得分:1)

如果您的意思是“从网站上抓取数据”,您可以查看XMLHttpRequest,它是一种基本的网络技术,并提供客户端功能,用于在客户端和服务器之间传输数据。

此外,当您想要在扩展中执行此操作时,请不要忘记request cross-origin permissions

答案 1 :(得分:-2)

Chrome已经在此处撰写了自己的文档:

https://developer.chrome.com/extensions/background_pages

您必须在扩展程序清单中注册后台页面,并使用extension.getBackgroundPage方法读取它

示例:

// React when a browser action's icon is clicked.
chrome.browserAction.onClicked.addListener(function(tab) {
var viewTabUrl = chrome.extension.getURL('image.html');
var imageUrl = /* an image's URL */;

// Look through all the pages in this extension to find one we can use.
var views = chrome.extension.getViews();
for (var i = 0; i < views.length; i++) {
var view = views[i];

// If this view has the right URL and hasn't been used yet...
if (view.location.href == viewTabUrl && !view.imageAlreadySet) {

  // ...call one of its functions and set a property.
  view.setImageUrl(imageUrl);
  view.imageAlreadySet = true;
  break; // we're done
}
}
});

HTML:

<html>
  <script>
    function setImageUrl(url) {
      document.getElementById('target').src = url;
    }
  </script>

  <body>
    <p>
    Image here:
    </p>

    <img id="target" src="white.png" width="640" height="480">

  </body>
</html>