小编Yen*_*piz的帖子

跨源Chrome扩展程序

在过去大约一周的时间里,我一直在阅读和使用Chrome扩展程序,但是在尝试实现自己想要的功能时遇到了麻烦。我要创建的是一个在后台(或无提示)访问网站的扩展程序,该程序在网页上填写表格并检索响应。该网站没有API,我无法创建服务器来执行此操作,因为该网站每小时仅允许每个IP X个请求,因此我的请求将在几个用户之后被耗尽。

因此,我的想法是创建一个后台页面,该页面将使用JS到getElementById的JS来填写表单,设置值,提交表单并将响应无缝返回给用户。

经过测试,似乎同源起源策略阻止了我。这是我的代码:

_

manifest.json

{
  "manifest_version": 2,

  "name": "Getting started example",
  "description": "This extension shows a Google Image search result for the current page",
  "version": "1.0",

  "permissions": [
    "activeTab", "webRequest", "webRequestBlocking",
    "https://ajax.googleapis.com/"
  ],
  "background": {
      "page": "Page.html"
    }
}
Run Code Online (Sandbox Code Playgroud)

Page.HTML:

<html>
    <head>
        <script src="myJS.js"></script>
    </head>
    <body>
        <iframe src="CO-TEST-FRAME.html" width="400" height="400" id="maniframe" class="maniframe"></iframe>
        <iframe src="http://www.myserver.com/iframe/CO-TEST-FRAME.html" width="400" height="400" id="maniframe2" class="maniframe2"></iframe>
        <p id="test">new</div>
    </body>
</html>
Run Code Online (Sandbox Code Playgroud)

CO-TEST-FRAME.HTML:

<html>
    <head>
    </head>
    <body>
        <div id="desired" class="desired" hidden="hidden">some text</div>
    </body>
</html>
Run Code Online (Sandbox Code Playgroud)

myJS.js:

window.onload = function() …
Run Code Online (Sandbox Code Playgroud)

javascript cross-domain same-origin-policy google-chrome-extension

5
推荐指数
1
解决办法
2577
查看次数