2012-01-13 1 views
0

Создаю аддон firefox с помощью онлайн-аддона-строителя. Как можно использовать существующую функцию на веб-странице, изнутри аддона? Этот сайт не принадлежит мне, поэтому я не могу связать прослушиватели событий, чтобы отправить ему событие из моего аддона.доступ к скрипту контента на веб-странице js

Обновление: Теперь у меня есть этот код, но он не работает:

main.js

var widgets = require("widget"); 
var tabs = require("tabs"); 
var data = require("self").data; 


var widget = widgets.Widget({ 
    id: "transfer", 
    label: "Transfer", 
    content: "Transfer", 
    width: 100, 
    onClick: function() { 
    tabs.activeTab.attach({ 
     // native implementation of window.confirm will be used 
     contentScriptFile: data.url("new.js") 
    }); 
    } 
}); 

new.js:

function foo() 
{ 
    call(); // function in webpage 

} 
unsafeWindow.foo(); 

ответ

1

Вы впрыснуть сценарий содержимого в (например, через пакет page-mod) и вызовите unsafeWindow.foo() в сценарии содержимого для вызова функции foo() из сценария содержимого. См. documentation для получения дополнительной информации. Обязательно прочтите предупреждения: вы полагаетесь на функцию веб-страницы, чтобы вести себя так, как вы ожидаете, но это может быть не так. В частности, если функция возвращает что-то и вы хотите обработать этот результат, вы можете непреднамеренно ввести отверстие для безопасности.

+0

спасибо, я обновил свой ответ –

+0

@tasaras: Хе-хе, вам следует написать 'unsafeWindow.call()' ... –

+0

Я сделал это, но он говорит: в TypeError unsafeWindow.call не является функцией, функция на page is function call() {alert ("asd");} он отлично работает с unsafeWindow.alert ("asd") –

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