javascript - 使用 Chrome 扩展时从弹出窗口获取网页的 document.body
问题描述
我有一个基本的 Chrome 扩展程序,需要document.body
通过弹出窗口访问网页。
目前,当我尝试打开弹出窗口和控制台日志document.body
时,它会document.body
在我想要网站的document.body
.
我怎么做?
清单.json
{
"description": "Demo ext",
"manifest_version": 2,
"name": "Demo ext",
"version": "1.0",
"icons": {
"48": "icons/icon-48.png"
},
"permissions": ["activeTab"],
"browser_action": {
"default_icon": "icons/icon-32.png",
"theme_icons": [
{
"light": "icons/icon-32-light.png",
"dark": "icons/icon-32.png",
"size": 32
}
],
"default_title": "Demo ext",
"default_popup": "popup/index.html"
}
}
弹出/index.html
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8" />
<title>Demo ext</title>
</head>
<body>
<h1>Title should be the websites which we are on </h1>
<script src="./app.js"></script>
</body>
</html>
弹出/app.js
function main() {
console.log(document.body)
var title = document.createElement('div')
title.innerHTML = document.title
document.body.appendChild(title)
}
main()
我希望在document.body
此处登录的是网站。我该怎么做?
解决方案
我建议您查看此Chrome 扩展内容脚本
如果您的扩展程序需要与网页交互,那么它需要一个内容脚本。内容脚本是在加载到浏览器的页面上下文中执行的一些 JavaScript。将内容脚本视为加载页面的一部分,而不是与其打包的扩展(其父扩展)的一部分。
内容脚本可以通过与扩展程序交换消息来访问其父扩展程序使用的 Chrome API。他们还可以使用 chrome.runtime.getURL() 访问扩展文件的 URL,并使用与其他 URL 相同的结果。
推荐阅读
- git - 减少远程 git repo 的大小 (GitHub)
- ruby-on-rails - 当我在Rails5中使用React_component,Gem提供的View_Helper称为react-rails时,div的内容变为空而不重新加载
- javascript - 何时应该在 Javascript 中克隆变量?
- laravel - 如何在 vuejs(laravel) 中喜欢帖子后加载数据而不使用 vuejs 无限滚动刷新页面?
- angular - 使用 rxweb 验证器的@elementClass 时找不到名称为“userName”的控件
- javascript - 如何获得动态大小的 div 的新大小?
- java - 如何从 PreviousActivity 将 Intent Extras 传递给 Activity viewpager 中的多个片段
- java - 为什么 javax.tools.ToolProvider.getSystemTool(...) 用最宽的 Error 类而不是 ServiceConfigurationError 重新抛出?
- c - 使用蓝牙在 arduino 上接收带有字符的 2 字节数字时出现问题
- python - 如何在python中验证用户输入的格式是否正确