我正在制作Chrome扩展程序,并希望实现一个插件mark.js(https://markjs.io/),用于突出显示用户页面上的文字。但是,我在导入插件时遇到问题。由于html是用户的页面而我无法访问它,因此我无法使用通常的<script></script>
。所以,我尝试使用JavaScript来做到这一点,但我仍然遇到错误。
我的JavaScript代码如下:
var head= document.getElementsByTagName('head')[0];
var script= document.createElement('script');
script.type= 'text/javascript';
script.src= 'https://cdnjs.cloudflare.com/ajax/libs/mark.js/7.0.0/mark.min.js';
head.appendChild(script);
//highlight necessities
var context = document.querySelector("body");
var instance = new Mark(context);
function handleSetQuery(findWord) {
cheese.mark(findWord);
}
function handlePrevious() {
//insert previous thing
}
function handleNext() {
//insert next thing
}
function handleClear() {
instance.unmark(options);
}
chrome.runtime.onMessage.addListener(function (request, sender, sendResponse) {
if (request.action === "setquery") {
alert("received: setquery");
handleSetQuery(request.data);
} else if (request.action === "previous") {
handlePrevious();
} else if (request.action === "next") {
handleNext();
} else if (request.action === "clear") {
handleClear();
}
});
Chrome控制台返回以下错误:
任何帮助表示赞赏!解决这个问题也可以帮助我使用其他工具,比如jQuery。
答案 0 :(得分:0)
我是通过内容脚本标签注入的(我之前使用错误的顺序)。