Странный прототип Chrome / конфликт jQuery

У нас есть приложение с унаследованным кодом, которое опирается на прототип, но мы обнаружили, что оно слишком «тяжелое» для большинства мест, где мы хотим его использовать, и обнаружили, что jQuery лучше подходит для нашей работы. Итак, мы переходим на jQuery для новой функциональности.

Тем временем у нас есть несколько страниц, которые должны загрузить обе библиотеки:

<script language="javascript" type="text/javascript"
        src="prototype-1.5.1.2.js"></script> 
<script language="javascript" type="text/javascript"  
        src="jquery-1.3.2.js"></script> 
<script language="javascript" type="text/javascript">
    $j = jQuery.noConflict();
</script> 

(обратите внимание на более старую версию прототипа, мы обнаружили проблемы при обновлении, которые мы не хотим исправлять, когда все равно прекращаем работу)

Это работает в IE6, IE7, IE8-as-7 и FX3, но загрузить его в Chrome и все jQuery не удается.

Загрузка консоли разработчика javascript отображает следующие ошибки:

Uncaught Error: NOT_SUPPORTED_ERR: DOM Exception 9 http://.../prototype-1.5.1.2.js (line 1272)
Uncaught TypeError: Object #<an Object> has no method 'ready' http://.../lib.js (line 161)
Uncaught TypeError: Object #<an Object> has no method 'slideUp' http://.../page.aspx (line 173)
... and so on - all the failures are missing jQuery methods

Так что это похоже на конфликт в прототипе, который приводит к сбою создания объекта jQuery.

Конкретной проблемой с прототипом является Prototype.BrowserFeatures.XPath, который имеет значение true, когда это не должно быть, так как XPath document.evaluate не поддерживается.

Хорошо теперьперезагрузите страницу с открытой консолью javascript - все работает! WTF? Закройте консоль, перезагрузите компьютер, и снова произойдет сбой.

Ошибка возникает только тогда, когда загрузка страницы происходит без открытой консоли javascript. Почему это может иметь значение? Это очень похоже на ошибку в Chrome.

Кто-нибудь может объяснить, что происходит? Почему ошибка в прототипе может вызвать сбой инициализации jQuery? Почему загрузка страницы с открытой консолью заставляет ее работать?

Кто-нибудь знает хороший обходной путь? (кроме обновления до prototype-1.6.0.3.js, которое исправляет эту проблему, но устраняет загрузку устаревшего кода в другом месте)

Ответы на вопрос(2)

Ваш ответ на вопрос