Имею javascript-код, отрабатывающий в событии onpageload в chrome (неймспейсе, в котором работают аддоны, а не Google Chrome), не имеющий доступа к javascript-объектам и функциям, определенными на странице, которые мне, конечно же, очень надо вызвать.
Поступаю следующим образом:
// Работает
var script = doc.createElement('script');
script.setAttribute('type', 'text/javascript');
script.innerHTML = 'function alert_1() { alert("1"); }';
var body = doc.getElementsByTagName('body')[0];
body.appendChild(script);
start.setAttribute('onclick', 'alert_1()');
Решение кажется очевидным - подгрузить код из внешнего файла через аттрибут src:
var script = doc.createElement('script');
script.setAttribute('type', 'text/javascript');
script.setAttribute('src', 'chrome:///myext/contents/alert_1.js');
var body = doc.getElementsByTagName('body')[0];
body.appendChild(script);
start.setAttribute('onclick', 'alert_1()');
Судя по всему, javascript элементарно не подгружается из-за того, что страница, вроде как, уже загружена. Можно ли как-то силой заставить его подгрузиться?