Лишние файлы внутри расширения Safari

В настоящее время я работаю над расширением Safari, которое добавляет на сайт таблицу стилей и несколько небольших скриптов. Один из этих скриптов должен быть вставлен в html, поэтому у меня запущены другие скрипты ...

var myScriptElement = document.createElement('script');
myScriptElement.type = 'text/javascript';
myScriptElement.src = 'http://mysite.com/myscript.js';
document.querySelector('head').appendChild(myScriptElement);

... это добавляет это в голову:

<script type="text/javascript" src="http://mysite.com/myscript.js"></script>

У меня проблема в том, что скрипты загружаются с моего сайта, а не из папки расширений. Итак, что мне нужно вставить в качестве источника для доступа к папке расширения? Я не могу вставить сценарий, используя стандартную функцию расширения начального и конечного сценария.

Я действительно плохо разбираюсь в javascripting, поэтому был бы признателен, если бы кто-нибудь из вас мог мне помочь! :)


person Adrian Fahrbach    schedule 17.03.2013    source источник


Ответы (1)


Вы можете использовать safari.extension.baseURI, чтобы получить путь к папке вашего расширения. Так что используйте что-то вроде этого в вашем внедренном скрипте:

var myScriptElement = document.createElement('script');
myScriptElement.type = 'text/javascript';
myScriptElement.src = safari.extension.baseURI+'myscript.js';
document.querySelector('head').appendChild(myScriptElement);

Стоит отметить, что внедренный скрипт также вводится в каждый iframe на странице, поэтому в зависимости от того, что вы делаете, вы можете убедиться, что указанное выше выполняется только if (window == window.top).

person Matt Swain    schedule 17.03.2013