#firefox-addon #firefox4 #firefox-addon-sdk
#firefox-addon #firefox4 #firefox-addon-sdk
Вопрос:
Есть ли какой-либо способ легко использовать удаленный файл javascript в качестве скрипта содержимого с помощью API page-mod?
Я пытаюсь создать несколько простых дополнений для собственного использования, чтобы автоматизировать некоторые повторяющиеся вещи. Поскольку страницы, которые я буду моддить, время от времени меняются, и мне нужно будет соответствующим образом обновлять javascript «content script», было бы неплохо, если бы мне нужно было только отредактировать его на моем сервере, и аддон / расширение снова заработало бы без редактирования и переупаковки xpi. Я почти уверен, что смогу взломать что-то вместе, что позволит это сделать, но если есть какой-нибудь простой способ сделать это, я весь внимание 🙂
Ответ №1:
Сам сценарий содержимого никогда не должен быть удаленным сценарием, это было бы уязвимостью в системе безопасности. Но скрипт содержимого может вставлять удаленный скрипт на веб-страницу:
var pageMod = require("page-mod");
pageMod.PageMod({
include: "...",
contentScript: 'var script = document.createElement("script");'
'script.src = "...";'
'document.body.appendChild(script);'
});
Комментарии:
1. Вы можете это сделать, Владимир прав; но я не думаю, что это будет одобрено редакторами AMO fwiw.
2. @ztatic: Не уверен, я видел расширения, которые делают такие вещи. Если это сделано только для одного сайта и нет серьезных проблем с конфиденциальностью (например, не сайт онлайн-банкинга или вообще сайт, содержащий конфиденциальные данные), это может быть принято. Но это все еще сомнительный подход, конечно, пользователь должен доверять вам, что этот скрипт внезапно не превратится во что-то злое (например, потому, что вам срочно нужны деньги или потому, что ваш сервер был взломан).
3. Вау, я также поражен, что AMO одобрил бы ЛЮБОЙ аддон, который использует эту технику для выпуска миллионам пользователей. По точным причинам, упомянутым Владимиром… Как упоминалось выше, эта реализация предназначена только для моего собственного использования, поэтому в данном случае не стоит беспокоиться об этом. 🙂