Я пытаюсь написать букмарклет, который добавляет JSONP вызова на страницу, как это:Вызов функции созданной внутри букмарклета
javascript:(function(){
var myFunction = (window.function(data){alert('my function is firing with arg' + data)});
var j = 'http://localhost/jsonscript.js';
var s = document.createElement('script');
s.src = j;
document.getElementsByTagName('head')[0].appendChild(s);
})();
где ЦСИ скрипт добавляется на страницу содержит
myFunction('foo');
Но есть ошибка, когда я нажимаю букмарклет - myFunction не определен. Как я могу «экспортировать» эту функцию за пределы моего букмарклета, чтобы при вызове из добавленного тега скрипта он работал?
Редактировать: Я понял, что могу просто упаковать внутренний HTML-элемент скрипта с необработанным JavaScript. Это работает, но это уродливо. Я все равно хотел бы найти лучший способ.
туРипсЫоп вар сфера находится в букмарклет , поэтому вы можете объявить его глобальным, если хотите получить к нему доступ за пределами (function() {})(). Изменить var myFunction = ... to window.myFunction = – elmasse
Попробуй это, спасибо. – AmbroseChapel
Работает нормально. Положите это как ответ, и я сделаю это правильно. – AmbroseChapel