Полагаю, вы сможете сделать следующее:
javascript:(function () {
var newScript = document.createElement('script');
newScript.type = 'text/javascript';
newScript.src = 'http://depot.com/file.js';
document.getElementsByTagName('body')[0].appendChild(newScript);
})();
Вот очень полезный пример (вставьте это в адресную строку):
javascript:(function () {
var newScript = document.createElement('script');
newScript.type = 'text/javascript';
newScript.src = 'http://cornify.com/js/cornify.js';
document.getElementsByTagName('body')[0].appendChild(newScript);
for (var i = 0; i < 5; i++) {
newScript = document.createElement('script');
newScript.type = 'text/javascript';
newScript.src = 'http://cornify.com/js/cornify_run.js';
document.getElementsByTagName('body')[0].appendChild(newScript);
}
})();
Вуаля:
![Stack Overflow cornified](https://i.stack.imgur.com/jB9hA.jpg)
Фактически, именно так cornify.com включает удаленные сценарии в свои закладки.
ОБНОВЛЕНИЕ:
Как заметил @ Бен в другом ответе , вызывать функцию, определенную в вашем удаленном скрипте, не так просто.Бен предлагает одно решение этой проблемы, но есть и другое решение, которое использует кукуруза.Если вы посмотрите http://cornify.com/js/cornify_run.js
, вы увидите, что в этом файле есть только один вызов функции.Вы можете поместить ваш вызов funcname()
в отдельный файл JavaScript, как это делает cornify, потому что блоки скриптов гарантированно будут выполняться в порядке их вставки.Затем вам нужно будет включить оба сценария, как в следующем примере:
javascript:(function () {
var newScript = document.createElement('script');
newScript.type = 'text/javascript';
newScript.src = 'http://depot.com/file.js';
document.getElementsByTagName('body')[0].appendChild(newScript);
newScript = document.createElement('script');
newScript.type = 'text/javascript';
newScript.src = 'http://depot.com/file_run.js';
document.getElementsByTagName('body')[0].appendChild(newScript);
})();
, где file_run.js
просто включает вызов funcname()
.