Неперехваченная ошибка типа: объект # не имеет метода ‘dispatchEvent’

#javascript #drupal #typeerror #picasa

#javascript #drupal #ошибка типа #picasa

Вопрос:

Я пытаюсь объединить Drupal с веб-интегратором Picasa.

У меня есть эти 3 строки в разделе моего page.tpl.php:

 <script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.4.2/jquery.min.js"></script>
<script type="text/javascript" src="/fotos/js/jquery.slimbox2/jquery.slimbox2.js" language="JavaScript"></script>
<script type="text/javascript" src="/fotos/js/jquery.pwi.js" language="JavaScript"></script>
  

Я также добавил этот скрипт в свой раздел head, чтобы протестировать альбом (имя пользователя и albumname не важны, я тестировал его в автономном режиме с моим именем пользователя и альбомом, и это сработало нормально):

 <script type="text/javascript">

$(document).ready(function() {

    $("#container").pwi({
        username: 'My',
        maxresults: 5,
        mode: 'album',
        album: 'MyAlbum'
    });

});
</script>
  

Google Chrome выдает мне эту ошибку, когда я пытаюсь использовать ее на своей странице Drupal:

 prototype.js:5733Uncaught TypeError: Object#<Object> has no method 'dispatchEvent'
  

Ответ №1:

Drupal также поставляется с jQuery, и вы не можете просто добавить более позднюю версию в <script> теги. Вы можете попробовать использовать обновление jquery от Drupal, чтобы получить более свежую версию, или попробовать noConflict (я подозреваю, что оно вам все равно понадобится, если вы хотите использовать Prototype).

Ответ №2:

Похоже, вы также загружаете prototype.js на странице (возможно, используемой lightbox.js ?, и что, возможно, $ используемые как jQuery, так и Prototype конфликтуют. Если вам действительно нужно использовать как Prototype, так и jQuery, посмотрите на использование noConflict режима jQuery: http://api.jquery.com/jQuery.noConflict /.

Комментарии:

1. noConflict не помог. Мне каким-то образом удалось решить проблему, поместив теги <script> в мое тело, но все еще есть некоторые проблемы с использованием IE. Ссылка: chirowijkoersel.be/node/35

2. Проблема решена, у меня были запущены два скрипта, похожих на скрипты, единственным отличием было их имя файла. Удалив один из них, проблема была решена.