2
我正在開發一個Firefox擴展項目,該項目要求我使用TAB鍵切換頁面上的所有鏈接,提取其URL,提取其源代碼並解析它。使Pagemod和頁面工作者模塊一起工作?
目前,我能夠使用TAB鍵切換通過頁面來獲得它的URL由以下內容:
exports.main = function() {};
var pageMod = require("page-mod");
pageMod.PageMod({
include: "*.org",
contentScriptWhen: 'ready',
contentScript:
'document.onkeydown = function(ev) {var key; ev = ev || event; key = ev.keyCode; if (key == 9) { setTimeout (function(){console.log(document.activeElement.href);'+
'}, 1000); } };'+
'var a = "Access Tab URL Extraction: New Page Found."; console.log(a);'
});
...並獲得取任何的源代碼給URL具有以下(維基百科爲例):
exports.main = function() {};
console.log("Start");
var pageWorkers = require("page-worker");
var script = "var elements = document.body.innerHTML; " +
" postMessage(elements) " ;
// Create a page worker that loads Wikipedia:
pageWorkers.Page({
contentURL: "http://en.wikipedia.org/wiki/Internet",
contentScript: script,
contentScriptWhen: "ready",
onMessage: function(message) {
console.log(message);
}
});
所以,我怎麼能傳遞我從Pagemod得到了URL(在這種情況下document.activeElement.href)進入頁面,工人的contentURL並使其讀取和顯示源代碼每當我按Tab鍵,因爲新的URL保持在Pagemod中提取。
我試過以下,但它不起作用,似乎不能調用頁面工作者作爲page-mod的contentScript的一部分?
exports.main = function() {};
var pageMod = require("page-mod");
var pageWorkers = require("page-worker");
pageMod.PageMod({
include: "*.org",
contentScriptWhen: 'ready',
contentScript:
//Get New URLs by Pressing the Tab Key
'document.onkeydown = function(ev) { var key; ev = ev || event; key = ev.keyCode; if (key == 9) { setTimeout (function(){console.log(document.activeElement.href);'+
'}, 1000); } };'+
//Fetch new URL source code
'document.onkeyup = function(ev) { var key; ev = ev || event; key = ev.keyCode; if (key == 9) {'+
'pageWorkers.Page({'+
'contentURL: "document.activeElement.href",'+
'contentScript: "var elements = document.body.innerHTML;"+"postMessage(elements)",'+
'contentScriptWhen: "ready",'+
'onMessage: function(message) {'+
'console.log(message);'+
'}'+
'});'+
' } };'
});
任何幫助將不勝感激! :)
謝謝,我以一些不同但類似的方式解決了這個問題。 – eastboundr 2011-11-17 17:38:22