我想创建一个靠近GmailChecker的chrome扩展程序。 我已经看过它的源代码了,但是它有点复杂。 它似乎使用了一些AJAX。

我尝试使用jQuery,但它在这种情况下不起作用(无法访问托管在其他服务器上的网站......并且因为这是chrome的扩展,所以脚本无法从相同的服务器)。

顺便说一下,我不确定我想做什么是可能的。 我还不太了解chrome扩展,所以我需要你的帮助。

我想这样做:在后台页面中,定期使用cookie-session加载页面(用于浏览带有登录系统的网站)。 然后获取加载页面的源代码,然后做一些事情(如果他有消息就对用户说,但是,这不是主题,也不是我认为的问题)。

所以我至少需要:

  • 使用cookie和会话进行查询
  • 访问Web托管页面的源代码
  • 在后台页面中做所有这些事情(隐藏和分离用户的浏览)。

我可以使用Chrome扩展程序执行此操作(如果可以,您可以给我一些功能或提示吗)?

谢谢 !!

清单:

{
  "manifest_version": 2,
  "name": "My Extension",
  "version": "1",
  "description": "Yeah, cool ext",
  "browser_action": {
    "default_popup": "file.html"
  },
  "permissions": ["tabs",
  "background",
  "*://*.google.com/"],
  "background": {
    "page": "background.html"
  }
}

background.html:

<!DOCTYPE html>
<html>
<head>
</head>

<body>
    <script src='script.js'></script>
</body>
</html>

script.js:

var xhr = new XMLHttpRequest();
xhr.onreadystatechange = function(){
    console.log(xhr.responseText);   //that's the source code
};
xhr.open("GET", "http://www.google.com", true);
xhr.send();

===============>>#1 票数:3

是的,你可以用简单的AJAX调用来做那些:

var xhr = new XMLHttpRequest();
xhr.onreadystatechange = function(){
    xhr.readyState == 4 && console.log(xhr.responseText);//that's the source code
};
xhr.open("GET", "http://www.google.com", true);
xhr.send();

或者在jQuery中:

$.get("http://www.google.com/", function(data){
    console.log(data);
});

由于这是一个扩展,如果您已在清单中正确声明了您需要访问的站点,则可以启用跨源资源共享的情况下对另一个站点执行直接请求。 不需要中间的服务器来为您执行请求, 也不需要服务器来获取结果。 并不需要JSONP。

Google有一个关于扩展中跨域请求的页面。 您可以在此处阅读更多内容: https//developer.chrome.com/extensions/xhr#requesting-permission

通过将主机或主机匹配模式(或两者)添加到清单文件的权限部分,扩展可以请求访问其源外的远程服务器。

  ask by Cobaltway translate from so

未解决问题?本站智能推荐: