Je suppose que vous devriez être en mesure de faire ce qui suit:
javascript:(function() {
var newScript = document.createElement('script');
newScript.type = 'text/javascript';
newScript.src = 'http://depot.com/file.js';
document.getElementsByTagName('body')[0].appendChild(newScript);
})();
Voici un exemple très utile (coller dans votre barre d'adresse):
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);
}
})();
Voila:

En fait, c'est ainsi que cornify.com est inclus les scripts distants dans leur bookmarklet.
MISE À JOUR:
Comme @Ben noted in the other answer, ce n'est pas facile d'appeler une fonction définie dans votre script distant. Ben suggère une solution à ce problème, mais il y a aussi une autre solution, celle que les cornifiants utilisent. Si vous vérifiez http://cornify.com/js/cornify_run.js
, vous verrez qu'il n'y a qu'un seul appel de fonction dans ce fichier. Vous pouvez placer votre appel funcname()
dans un fichier JavaScript distinct, comme le font les cornify, car les blocs de script sont garantis être exécutés dans l'ordre où ils sont insérés. Ensuite, vous auriez à inclure les deux scripts, comme dans l'exemple suivant:
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);
})();
Lorsque le file_run.js
comprend simplement un appel à funcname()
.
dans la barre d'adresse ... Que voulez-vous dire? –
Je suppose que vous l'utilisez pour de mauvaises choses ... "ne soyez pas mal" :) – Topera
Qu'est-ce qui est mal en ajoutant quelques Unicrons? :) –