2014-10-11 4 views
0

Я пытаюсь создать аддон firefox, который использует textcript для вставки файла .js на определенную страницу. Большинство из них работает, но я продолжаю получать эту странную ошибку.Referenceerror: данные не определены

main.js

var pageMod = require("sdk/page-mod"); 
var self = require("sdk/self"); 
var data = require('sdk/self').data; 

pageMod.PageMod({ 
    include: ["http://www.google.com", 
      "https://ww.google.com" 
      ], 
    contentScriptFile: data.url("contentscript.js") 
}); 

contentscript.js

var s = document.createElement('script'); 
s.src = data.url('jquery.js'); 
s.onload = function() { 
    this.parentNode.removeChild(this); 
}; 
(document.head||document.documentElement).appendChild(s); 

setTimeout(function(){ 
    var d = document.createElement('script'); 
    d.src = data.url('script.js'); 
    d.onload = function() { 
     this.parentNode.removeChild(this); 
    }; 
    (document.head||document.documentElement).appendChild(d); 
},100) 

содержание script.js является unrelevant, потому что он даже не начал выполняться. Ошибка указана в тексте: 2: 1 Referenceerror: данные не определены.

Имейте в виду, что это необходимо сделать, сценарий должен иметь возможность изменять DOM.

ответ

0

Вы не можете получить доступ к data.url из сценария содержимого, вы можете сделать это только с main.js. Вы можете передать путь к файлу и имя сценария из основного в contentScriptOptions.

Также я не уверен, что вы собираетесь использовать для этого, но если вы делаете include: ["https://www.google.com"], тогда страница-мода будет работать только с https://www.google.com. include: "[*]" позволяет использовать все веб-сайты и т. Д.

Смежные вопросы