Timeline을 내 크롬 확장에 통합하려고합니다. 이미이 Addon의 js 파일과 css 파일을 다운로드하여 Chrome 확장의 루트 디렉토리에 넣었습니다.타사 라이브러리 사용
크롬 확장 자체는 JS를 기존 페이지에 삽입하고 html 코드을 수정하는 것입니다.
"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"));
후 다음
Uncaught ReferenceError: vis is not defined
at addTimeLine (ui.js:230)
at createClientBox (ui.js:270)
at ui.js:62
내 manifest.json을한다 : 나는 라이브러리를 사용하려고 할 때 나는 오류 메시지가 표시됩니다
content.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();
위 오류 메시지가 표시됩니다.
크롬 확장 프로그램에서 타사 라이브러리를 성공적으로 사용하기 위해 누락 된 점은 무엇입니까?
정말이 답변을 게시 할 시간과 노력에 감사드립니다. 그래서 나는 옵션 1을 사용하여 가야한다고 생각합니다. 나는 "web.whatsapp"페이지의 기존 [PoC] (https://www.lorankloeze.nl/2017/05/07/collecting-huge-amounts-of-data-with-whatsapp/)를 수정하고 확장하고 있습니다. com "이라고 말하고 나의 목표는 페이지에 새로운 버튼을 추가하고 일부 데이터를 수집하여 로컬로 다운로드 할 파일/그래프로 게시하는 것입니다. 그래서 제가 올바르게 이해한다면 옵션 1을 사용하여이 모든 것을 올바르게 할 수 있을까요? – Nico
다릅니다. 데이터가 DOM에 간단하게 표시되면 (예 : jQuery로 추출 할 수 있음) 그렇다면 예. 페이지의 JavaScript 컨텍스트에서 "필요한"데이터가 필요하다면 그 데이터를 삽입해야합니다. – Xan
PoC를 제대로 이해하면 페이지에 정보를 입력 할 때 자바 스크립트에서 사용할 수있는 문서화되지 않은 API에 데이터가 올바르게 저장됩니다. 그것이 DOM 스크립트 노드가 ui.js로 생성 된 이유입니다. – Nico