我的扩展程序中有一个功能:
function doStuff() {
// Do stuff
}
我想从页面上的脚本中调用它:
<!doctype html>
<html>
<head>
<title>Extension Test</title>
<script>doStuff();</script>
</head>
<body>
<p>This is a test.</p>
</body>
</html>
但是,控制台出现错误:
未捕获的ReferenceError:在(index):6处未定义doStuff
有没有办法做到这一点?
答案 0 :(得分:1)
首先,您必须在manifest.json
文件中添加以下代码:
{
"name": "My extension",
...
"content_scripts": [
{
"matches": [ "http://*/", "https://*/" ],
"js": ["content.js"],
"run_at": "document_start"
}
],
"permissions": [
"http://*/",
"https://*/"
]
...
}
现在您应该创建一个content.js
文件,其内容为:
const injectedScript = document.createElement('script');
injectedScript.src = chrome.extension.getURL('injected.js');
(document.head || document.documentElement).appendChild(injectedScript);
然后创建一个injection.js文件,并在该文件中编写代码,例如:
function doStuff() {
// Do stuff
}
我希望我明白你的意思。如果有问题,请告诉我。