我想集成一个Timeline http://visjs.org/docs/timeline/在我的镀铬扩展中。我已经下载了这个插件的js文件和css文件,并将它们放在我的chrome扩展的根目录中。
chrome 扩展本身只是向现有页面注入JS并修改html代码。但是,当我尝试使用该库时,我会收到错误消息:
Uncaught ReferenceError: vis is not defined
at addTimeLine (ui.js:230)
at createClientBox (ui.js:270)
at ui.js:62
这是我的manifest.json:
"content_scripts": [{
"matches": ["https://web.whatsapp.com/*"],
"css":["vis.min.css"],
"js": ["content.js","jquery-3.2.1.min.js","vis.min.js"],
"run_at": "document_end"
}],
"permissions": [
"activeTab"
],
这里是 content.js:
function injectJs(link) {
var scr = document.createElement("script");
scr.type="text/javascript";
scr.src=link;
(document.head || document.body || document.documentElement).appendChild(scr);
}
//injectJs(chrome.extension.getURL("/vis.min.js"));
injectJs(chrome.extension.getURL("/ui.js"));
之后内容.js被执行的是ui.js 注入成功到页面,我在页面上看到我添加的按钮。现在,当我想像这样使用该库时:
var addTimeLine = function () {
var visualization = document.createElement('div');
visualization.id = 'visualization';
// Get the conatiner where the timeline should be displayed
var container = document.getElementById('visualization');
// Create a DataSet (allows two way data-binding)
var items = new vis.DataSet([{
id: 1,
content: 'item 1',
start: '2013-04-20'
},
{
id: 2,
content: 'item 2',
start: '2013-04-14'
},
{
id: 3,
content: 'item 3',
start: '2013-04-18'
},
{
id: 4,
content: 'item 4',
start: '2013-04-16',
end: '2013-04-19'
},
{
id: 5,
content: 'item 5',
start: '2013-04-25'
},
{
id: 6,
content: 'item 6',
start: '2013-04-27'
}
]);
// Configuration for the Timeline
var options = {};
// Create a Timeline
var timeline = new vis.Timeline(container, items, options);
};
addTimeLine();
我会收到上面的错误消息。
为了在 Chrome 扩展中成功使用第三方库,我缺少哪一点?