После загрузки jQuery с Opera - PullRequest
2 голосов
/ 21 июня 2011

Я загружаю пост jQuery, и он вызывает ошибку CSS в Opera (и только в Opera). Я создал JSFiddle для демонстрации.

Наличие CSS, который стилизует теги HTML и BODY, например:

html {
    background: #6B9AB6;
}

body {
    background: white;
    max-width: 10em;
}

Затем опубликуйте загрузку jQuery (используя простой setTimeout для демонстрационных целей):

setTimeout(function(){

    var script_tag = document.createElement('script');
    script_tag.src = 'http://ajax.googleapis.com/ajax/libs/jquery/1.6.1/jquery.min.js';

    var script_sib = document.getElementsByTagName('script')[0];
    script_sib.parentNode.insertBefore(script_tag, script_sib);

}, 2000);

Заставляет корректно отображаться CSS, а затем мигает до неустановленного тега HTML. Использование DragonFly от Opera и изменение либо background-attachment, либо background-origin динамически исправляет это. То же самое нельзя сказать, если вы делаете это программно.

Есть ли способ заставить Opera вести себя с загруженным jQuery? Не стесняйтесь обновлять JSFiddle, если у вас есть какие-либо идеи.

1 Ответ

3 голосов
/ 21 июня 2011

Это регрессия в jQuery версии 1.6; jQuery версии 1.5.2 работает просто отлично .

На данный момент представляет патч от Aderty:

Ошибка может быть устраненав строке [номер строки] 1288 из jquery-1.6.1.js.

Заменить:

"documentElement.insertBefore (body, documentElement.firstChild);"

by

"documentElement.appendChild (body);"

, который творит чудеса, если вы самостоятельно размещаете библиотеку.

РЕДАКТИРОВАТЬ: В версии 1.6.2 есть исправление для этой проблемы (в настоящее время в репозитории jQuery GIT repo).

...