2010-06-28 6 views
0

При запуске кода в контексте «потока» в API Google Gears у вас нет доступа к объекту «document», и поэтому createElement нельзя использовать для динамической загрузки скрипта.Динамическая инъекция javascript без createElement

Есть ли у кого-нибудь идеи о том, как я мог бы «вводить» код в такой сценарий? Единственный метод, который я могу придумать, - это использовать вебсервис и объект JSON, которые я бы затем оценил, но это создает собственную серию проблем и сложностей и оставляет мне неприятный вкус во рту.

Проблема заключается в том, что я заканчиваю большими монолитными битами кода и различным дублированием кода из-за этого ограничения, и нет ничего, что я ненавижу больше.

Любые идеи?

ответ

1

Не нужно использовать веб-сервис, просто используйте простой XMLHttpRequest для извлечения файла javascript, а затем оцените его.

var xhr = new XMLHttpRequest(); 
xhr.open("foo.js", null, false); // since this is in a thread you can use the synchronous approach 
xhr.send(""); 
eval(xhr.responseText); 
+0

Кстати, если вы хотите иметь код eval'ed в глобальном масштабе это сделать 'вар п = новая функция (xhr.responseText); п(); ' –

 Смежные вопросы

  • Нет связанных вопросов^_^