Итак, я столкнулся с такой проблеммой, мне нужно модифицировать страницу плагином таким образом:

Выделить код

Код:

var scre = doc.createElement("SCRIPT");
    scre.setAttribute("src", "chrome://erdel/content/CTB_Modifier.js");
    doc.body.appendChild(scre);

Всё бы ничего но такой хромовский скрипт в конечной странице не работает, потому что он ссылается на хромовский адрес chrome://erdel/content/CTB_Modifier.js. Первый раз когда я столкнулся с подобной штукой я вынес скрипт на внешний сервер, и подключал его:

Выделить код

Код:

var scre = doc.createElement("SCRIPT");
    scre.setAttribute("src", "http://blablabla");
    doc.body.appendChild(scre);

Но это только временное решение, подскажите, как заинклюдить хромовский скрипт внутри страницы, и можно ли это вообще сделать?
Есть конечно вариант

Выделить код

Код:

var scri = frdoc.createElement("SCRIPT"); //location='/map.php?action=con&con=&r='+encode64(event.x+':'+event.y);
            scri.innerHTML = "...";
            frdoc.body.appendChild(scri);

но если в код скрипта достаточно объёмный, то innerHTML получать геморно - разве что аякс запросом к chrome.

Нужно мне это для того чтобы подменить событие нажатия некоторых кнопок, на своё событие.

Эээ, я правильно понимаю, что вы пишите расширение, которое добавляет на страницу ещё один скрипт?
А почему бы не воспользоваться GreaseMonkey?

https://developer.mozilla.org/En/Chrome … accessible
Или попробовать через resource://... : https://developer.mozilla.org/En/Chrome … n#resource
Или даже сделать

Выделить код

Код:

data:application/x-javascript,какой-то код

Хотя лучше и правда в сторону Greasemonkey посмотреть – там, кажется, evalInSandbox используется.

Infocatcher
Lynn
Я честно говоря не знаю что такое GreaseMonkey..

Infocatcher
Тоесть в манифесте для данного конкретного файла прописать что-либо?

гугл вам в помощь

Lynn я уже посмотрел, это плагин, не мой, а я программист, и пишу свой плагин, который не должен зависеть от того, установлен ли GreaseMonkey, или нет :)

Ну тогда примерно так:

Выделить код

Код:

var x = function() {
// тут код скрипта, например
alert(42);
}

var scri = frdoc.createElement("SCRIPT")
scri.innerHTML = "(" + x.toSource() + ")()"
frdoc.body.appendChild(scri)

Lynn спасибо большое! Вот метод toSource() я незнал, в принципе он то мне и нужен, спасибо )