Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   Конфликты скриптов на сайте joomla (https://javascript.ru/forum/misc/59903-konflikty-skriptov-na-sajjte-joomla.html)

Stas1985 02.12.2015 15:19

Конфликты скриптов на сайте joomla
 
установил чистую joomla + virtuemart ну и парочку меню файлы js вообще не трогал но на сайте полезли ошибки.
Сайт на обновлении переезжаем с версии joomla 2,5 на 3.

Вот допустим первая ошибка
Uncaught ReferenceError: jQuery is not defined(anonymous function)
@ (index):21
в файле index на 21 строке идет вывод скрипта меню jQuery
Вот она
jQuery('.hasTooltip').tooltip({"html": true,"container": "body"}); но меню без этого работать не будет.

вот вообще не понятная
Uncaught TypeError: e is not a function(anonymous function)
@ bootstrap.min.js:8
(anonymous function)
@ bootstrap.min.js:8
ведь этот файл bootstrap.min.js идет с чистой системой.
да и в индексе он вроде как выключен
//JHTML::_('behavior.framework', true);
JHtml::_('jquery.framework');
// отключение скриптов в фронте
$doc = JFactory::getDocument();
unset($doc->_scripts[JURI::root(true). '/media/jui/js/jquery.min.js']);
unset($doc->_scripts[JURI::root(true). '/media/jui/js/jquery-noconflict.js']);
unset($doc->_scripts[JURI::root(true). '/media/jui/js/bootstrap.min.js']);
unset($doc->_scripts[JURI::root(true). '/media/jui/js/jquery-migrate.min.js']);

помогите решить данную проблему так как в js не разбираюсь

рони 02.12.2015 16:00

Stas1985,
сначала грузится
jquery.min.js
потом
jquery-migrate.min.js
потом все скрипты и плагины на jquery
затем
jquery-noconflict.js
далее
bootstrap.min.js
и скрипты bootstrap

Stas1985 03.12.2015 07:08

закомментировал php с вызовом jquery и bootstrap
//JHTML::_('behavior.framework', true);
//JHtml::_('jquery.framework');
// отключение скриптов в фронте сираници
//$doc = JFactory::getDocument();
//unset($doc->_scripts[JURI::root(true). '/media/jui/js/jquery.min.js']);
//unset($doc->_scripts[JURI::root(true). '/media/jui/js/jquery-migrate.min.js']);
//unset($doc->_scripts[JURI::root(true). '/media/jui/js/jquery-noconflict.js']);
//unset($doc->_scripts[JURI::root(true). '/media/jui/js/bootstrap.min.js']);

Осталась одна ошибка
Uncaught ReferenceError: mobilecheck is not defined(anonymous function) @ (index):34
вот скрипт который подгружает меню
jQuery(document).ready(function(){
	jQuery('.hasTooltip').tooltip({"html": true,"container": "body"});
});
jQuery(document).ready(function()
			{
				jQuery('.hasPopover').popover({"html": true,"trigger": "hover focus","container": "body"});
			});
window.setInterval(function(){var r;try{r=window.XMLHttpRequest?new XMLHttpRequest():new ActiveXObject("Microsoft.XMLHTTP")}catch(e){}if(r){r.open("GET","/index.php?option=com_ajax&format=json",true);r.send(null)}},3600000);

	if(mobilecheck()){
		bindEvent(window,'load',function(){
				juxTouchMenu('juxvm_mm_101');
		});
	};

34 строка тут });

Stas1985 03.12.2015 07:27

Если перейти в товар то там 2 ошибки одна все та же и еще одна появилась связана с перелистыванием изображений.
Вот первая
Uncaught ReferenceError: mobilecheck is not defined(anonymous function)
@ izgotovlenie-prezentatsionnykh-albomov-2c-fotoalbomov-detail.html:75

Вот вторая
Uncaught TypeError: jQuery(...).fancybox is not a function(anonymous function)
@ izgotovlenie-prezentatsionnykh-albomov-2c-fotoalbomov-detail.html:48j
@ jquery.min.js:2k.fireWith
@ jquery.min.js:2m.extend.ready
@ jquery.min.js:2J
@ jquery.min.js:2

сам код с индекса
<script type="text/javascript">

		jQuery(function($) {
			SqueezeBox.initialize({});
			SqueezeBox.assign($('a.modal').get(), {
				parse: 'rel'
			});
		});
		function jModalClose() {
			SqueezeBox.close();
		}

	jQuery(document).ready(function() {
		jQuery("a[rel=vm-additional-images]").fancybox({
			"titlePosition" 	: "inside", /*! 48 строка тут */
			"transitionIn"	:	"elastic",
			"transitionOut"	:	"elastic"
		});
  		jQuery(".additional-images a.product-image.image-0").removeAttr("rel");
		jQuery(".additional-images img.product-image").click(function() {
			jQuery(".additional-images a.product-image").attr("rel","vm-additional-images" );
			jQuery(this).parent().children("a.product-image").removeAttr("rel");
			var src = jQuery(this).parent().children("a.product-image").attr("href");
			jQuery(".main-image img").attr("src",src);
			jQuery(".main-image img").attr("alt",this.alt );
			jQuery(".main-image a").attr("href",src );
			jQuery(".main-image a").attr("title",this.alt );
			jQuery(".main-image .vm-img-desc").html(this.alt);
		});
	});
    
jQuery(document).ready(function(){
	jQuery('.hasTooltip').tooltip({"html": true,"container": "body"});
});
jQuery(document).ready(function()
			{
				jQuery('.hasPopover').popover({"html": true,"trigger": "hover focus","container": "body"});
			});
window.setInterval(function(){var r;try{r=window.XMLHttpRequest?new XMLHttpRequest():new ActiveXObject("Microsoft.XMLHTTP")}catch(e){}if(r){r.open("GET","/index.php?option=com_ajax&format=json",true);r.send(null)}},3600000);

	if(mobilecheck()){
		bindEvent(window,'load',function(){
				juxTouchMenu('juxvm_mm_101');
		});
	};
/*! 75 строка тут */
  </script>

Знатоки js помогите решить

Stas1985 10.12.2015 07:23

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

Stas1985 10.12.2015 08:00

<script type="text/javascript">jQuery.noConflict(); </script>
Так не прокатывает конфликты все ровно есть

Stas1985 10.12.2015 08:36

Пишет что fancybox не является функцией
Uncaught TypeError: jQuery(...).fancybox is not a function
вот сам скрипт
$imageJS = '
	jQuery(document).ready(function() {
		jQuery("a[rel=vm-additional-images]").fancybox({
			"titlePosition" 	: "inside",
			"transitionIn"	: "elastic",
			"transitionOut"	: "elastic"
		});
  		jQuery(".additional-images a.product-image.image-0").removeAttr("rel");
		jQuery(".additional-images img.product-image").click(function() {
			jQuery(".additional-images a.product-image").attr("rel","vm-additional-images" );
			jQuery(this).parent().children("a.product-image").removeAttr("rel");
			var src = jQuery(this).parent().children("a.product-image").attr("href");
			jQuery(".main-image img").attr("src",src);
			jQuery(".main-image img").attr("alt",this.alt );
			jQuery(".main-image a").attr("href",src );
			jQuery(".main-image a").attr("title",this.alt );
			jQuery(".main-image .vm-img-desc").html(this.alt);
		});
	});
    ';

вот что он выводит на сайте
jQuery(document).ready(function() {
		jQuery("a[rel=vm-additional-images]").fancybox({
			"titlePosition" 	: "inside",
			"transitionIn"	: "elastic",
			"transitionOut"	: "elastic"
		});

этот скрипт отвечает за отображение картинок в карточке товара

Vlasenko Fedor 10.12.2015 12:03

Цитата:

Сообщение от Stas1985
отключение скриптов в фронте сираници

Joomla options от производителя :)
Joomla options
Отключение Mootools
Отключение Jquery
Отключение Bootstrap

Stas1985 10.12.2015 12:10

Да я этот код вообще с индекса удалил
Осталось вот одна ошибка и она вроде как и мешает меняться картинкам

рони 10.12.2015 12:22

Цитата:

Сообщение от Stas1985
if(mobilecheck()){

убрать красное


Часовой пояс GMT +3, время: 03:59.