Как загрузить jQuery до того, как DOM будет готов - PullRequest
0 голосов
/ 08 ноября 2010

Я хочу загрузить код jQuery до того, как DOM будет готов. Я хочу сделать флэш-файл прозрачным при загрузке DOM. Я собирался использовать что-то вроде этого, но Flash запускается до загрузки DOM.

jQuery(document).ready(function(){
    jQuery('object:not(:has(wmode))').each(function(){
        jQuery(this).attr('wmode', 'transparent');
        jQuery(this).prepend('<param name="wmode" value="transparent">');
        jQuery(this).children('embed').attr('wmode', 'transparent');
    });
});

Есть идеи, как это сделать?


EDIT

Привет, ребята, спасибо за помощь. В основном, флэш-контент исходит от нашего Менеджера рекламы, который, как ни странно, не позволяет напрямую редактировать HTML, так как добавляет необходимый wmode, приписываемый конкретным тегам. .

Так что Javascript - мой единственный вариант ...

Ответы [ 3 ]

3 голосов
/ 08 ноября 2010

ready() - самая ранняя точка, в которой вы можете безопасно получить доступ к произвольным элементам DOM.

Вы можете поместить блок script сразу после объявления тега object: это должно работать, у вас будет доступ к элементу object.

Однако я не думаю, что это поможет вам: насколько я знаю, Flash все равно не примет изменение параметра wmode на стороне JavaScript.

Вы должны поместить wmode.transparent в HTML или динамически создавать Flash-фильмы при загрузке DOM.

0 голосов
/ 08 ноября 2010

Самый безопасный способ - создать объект или встроить элемент в событие dom ready:

<div id="flash"></div>

$(document).ready(function(){
   var htm= '<object ...><param name="some" value="val" ... /></object>';
   $('#flash').html(htm);

});
0 голосов
/ 08 ноября 2010

Использование javascript до загрузки dom приведет к непредсказуемым результатам. Измените свой HTML-код, как вы хотите, но не используйте JavaScript.

...