javascript - 我正在构建一个 chrome 扩展,我需要从另一个页面提取信息。我会用背景页来做到这一点吗?

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

我需要一个 Chrome 扩展程序来仅在网站 x 上运行脚本,但从网站 Y 的 HTML 元素中提取信息。这可能吗?例如,如果我想在每次有人导航到烂番茄时显示 IMDB 电影评分以及烂番茄评分,这是否可能?如果可以,如何实现?

最佳答案

是的,这是可能的。首先你需要add permissions对于manifest.json 中的imdb 站点。像这样的事情:

"permissions": [
  "http://*.imdb.com/"
],

添加权限后,您可以将ajax请求发送到background page中的任何imdb url或content scripts 。在你的情况下,我认为最好从内容脚本发送 ajax 请求。如果您从后台页面发送请求,则需要使用 message passing 将拉取的信息传递给内容脚本。 .

您可以在manifest.json中添加类似的内容:

"content_scripts": [
 {
  "matches": ["https://*.rottentomatoes.com/*"],
  "js": ["myscript.js"]
 }
],

然后您可以从 myscript.js 向 imdb 网址发送 ajax 请求。

只是一个建议:与其从 imdb 网站提取 html 页面然后解析所需信息,不如使用 api 更好。类似于 http://www.omdbapi.com/ .

关于javascript - 我正在构建一个 chrome 扩展,我需要从另一个页面提取信息。我会用背景页来做到这一点吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38114302/

相关文章:

javascript - 表 td 上的 onblur 事件

ios - 在 iOS 中聚焦 Select 时 Safari 和 Chrome 卡住

javascript - 如何为不仅仅是文本自定义 Bootstrap typeahead 布局/功能?

javascript - AngularJS 重复列表中的数据

javascript - 更新 Electron 和changin Node 后的错误积分为true

javascript - 在 Chrome 扩展内容脚本中,我必须在处理文档之前等待 document.ready 吗?

jquery - Ajax GET 结果突然出现 "ERR_INCOMPLETE_CHUNKED_ENCODING"和 "XMLHttpRequest: Network Error 0x800c0007"

javascript - 在新窗口中使用 d3.js

html - 不同高度的 float div 在包装时卡住

javascript - 添加了图标外观的图像