#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. Проблема решена, у меня были запущены два скрипта, похожих на скрипты, единственным отличием было их имя файла. Удалив один из них, проблема была решена.