Firefox/Chrome/Safari 확장 프로그램을 사용하여 웹 페이지에서 콘텐츠를 추출하려고합니다. 캡처는 정상적으로 작동하지만 전체 웹 페이지를 캡처하면 오랜 시간이 걸리고 UI가 차단됩니다. 캡처/DOM 구문 분석 코드를 다른 스레드 (웹 작업자)로 이동하려고합니다. 그러나 웹 작업자는 DOM에 액세스 할 수 없습니다. 이 문제를 해결할 수있는 방법이 있습니까? 나는 웹 페이지에 스크립트를 삽입하려면 다음 코드를 사용하고웹 작업자의 HTML DOM 구문 분석
:
function executeScript(script, messageKey, callback) {
var wm = Components.classes["@mozilla.org/appshell/window-mediator;1"].getService(Components.interfaces.nsIWindowMediator);
var mainWindow = wm.getMostRecentWindow("navigator:browser");
mainWindow.gBrowser.selectedBrowser.messageManager.loadFrameScript(script, true);
mainWindow.gBrowser.selectedBrowser.messageManager.addMessageListener(messageKey, callback);
}
executeScript("chrome://extension/content/contentscript.js", "onSelectionReceived", onSelection);
모든 DOM 처리가이 스크립트 내부에서 일어나고있는 'contentscript.js'
여기에 "추출"무엇을 의미합니까 : 여기
는 배열 처리의 기본 예입니다? –현재 탭에서 열려있는 웹 페이지에서 html 데이터를 가져 오려고합니다. 파이어 폭스에서 다음 api를 사용하여 웹 페이지에 스크립트를 주입하고 있습니다. http://pastebin.com/bzMnrnJ2 –
데이터가 파싱 되었으면 어떻게 보이시겠습니까? – Jake