Есть пара разных модулей которые для своей работы используют одинаковый js скрипт. например — jquery.capslide.js
В обычном режиме(без моих изменений) они грузят этот файл с разных урлов(т.к модули разные) = не приятно да и ПэйджСпид в ФаерБаге матерится.
Вынеся загрузку jquery.capslide.js в шаблон сайта = уже лучше, но имеем загрузку данного скрипта на всех страницах сайта, что тоже не радует.
На одном форуме подсмотрел такой скриптик:
<script type="text/javascript"> if (typeof(jQuery) == 'undefined') { document.write('<scr' + 'ipt type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.7.0/jquery.min.js"></scr' + 'ipt>'); } </script>
И теперь вопрос:
Как правильно записать if (typeof(jQuery) == 'undefined') {, чтобы определялось наличие в коде страницы загружен ранее или нет скрипт jquery.capslide.js ?
P.S. забыл прицепить сам скрипт jquery.capslide.js
(function($) { $.fn.capslide = function(b) { var opts = $.extend({}, $.fn.capslide.defaults, b); $this = $(this); var o = $.meta ? $.extend({}, opts, $this.data()) : opts; if(!o.showcaption) $this.find('.ic_caption').css('display','none'); else $this.find('.ic_text').css('display','none'); var _img = $this.find('img:first'); var w = _img.css('width'); var h = _img.css('height'); $('.ic_caption',$this).css({'color':o.caption_color,'background-color':o.caption_bgcolor,'bottom':'0px','width':w}); $('.overlay',$this).css('background-color',o.overlay_bgcolor); $this.css({'width':w , 'height':h, 'border':o.border}); $this.hover( function () { if((navigator.appVersion).indexOf('MSIE 7.0') > 0) $('.overlay',$(this)).show(); else $('.overlay',$(this)).fadeIn(); if(!o.showcaption) $(this).find('.ic_caption').slideDown(500); else $('.ic_text',$(this)).slideDown(500); }, function () { if((navigator.appVersion).indexOf('MSIE 7.0') > 0) $('.overlay',$(this)).hide(); else $('.overlay',$(this)).fadeOut(); if(!o.showcaption) $(this).find('.ic_caption').slideUp(200); else $('.ic_text',$(this)).slideUp(200); } ); }); }; $.fn.capslide.defaults = { caption_color : 'white', caption_bgcolor : 'black', overlay_bgcolor : 'blue', border : '1px solid #fff', showcaption : true }; })(jQuery);