динамически загружать ранжированную библиотеку - PullRequest
0 голосов
/ 22 сентября 2011

Как предложено здесь и в качестве примера здесь , для выделения выделенного текста может использоваться ранжированная библиотека.

У меня нет прямого доступа к странице, которую я хочувыделите некоторый текст, поэтому я пытаюсь загрузить его динамически:

var HLScripts=new Array(
'lib/log4javascript.js',
'src/js/core/core.js',
'src/js/core/dom.js',
'src/js/core/domrange.js',
'src/js/core/wrappedrange.js',
'src/js/core/wrappedselection.js',
'src/js/modules/rangy-serializer.js',
'src/js/modules/rangy-cssclassapplier.js',
'src/js/modules/rangy-selectionsaverestore.js',
'src/js/modules/rangy-highlighter.js'
)

for(var i=0; i<HLScripts.length; i++) {
var e=document.createElement('script');
e.type='text/javascript';
e.src='http://rangy.googlecode.com/svn/trunk/'+HLScripts[i];
document.body.appendChild(e);
}

Однако, когда я вызываю метод init rangy.init();, я получаю rangy is undefined.Как я могу исправить эту ошибку?

1 Ответ

2 голосов
/ 22 сентября 2011

Во-первых, я бы порекомендовал скачать сборку релиза Rangy и поместить ее на свой сервер, а не связывать напрямую с файлами в соединительной линии SVN, которые не так стабильны, как надлежащий выпуск, и полны вызовов регистрации, которыеувеличить размер кода и снизить производительность и потребовать log4javascript, который сам по себе довольно громоздкий.

Во-вторых, при такой динамической загрузке сценариев они будут загружаться асинхронно, а это означает, что отдельный сценарий может завершить загрузку и выполнить до предыдущих сценариев, для которых онзависит закончил загрузку.Сценарий загрузки и получения правильных зависимостей - сложная задача.Я не эксперт в этой области, но для этого я бы рекомендовал использовать загрузчик скриптов, такой как LABjs .

...