Joker Board 3.0

Полностью согласен, но не работает. И, это при том, что код даже не обсфуцирован. :) До подключения библиотек jquery даже не дошел. Смущает появление сообщения, что "Для комфортного доступа к этому сайту, в вашем браузере должен быть включен JavaScript". Скрипт сопротивляется. Подозреваю, что есть какой то маленький нюанс и так просто заменой вывести глобальную $ из main.js не получится. Хорошо бы получить совет от человека у которого это заработало. Вообще, очень сильно понравилась идея обезвредить именно джокеровскую яву переопределив имя переменной. Куда втыкать условия фичи no.conflict?
Заранее огромное спасибо за внимание.

Ну как хочешь, ты уже получил от такого человека совет :)
А проверка "Для комфортного доступа к этому сайту, в вашем браузере должен быть включен JavaScript" там написана не совсем верно, кажется идет проверка через эту переменную, я уже не помню, вообще нормально проверку на включение яваскрипта надо делать через тег "noscript", а не как сделал Джокеер через передачу переменной.
 
Полностью согласен, но не работает. И, это при том, что код даже не обсфуцирован. :) До подключения библиотек jquery даже не дошел. Смущает появление сообщения, что "Для комфортного доступа к этому сайту, в вашем браузере должен быть включен JavaScript". Скрипт сопротивляется. Подозреваю, что есть какой то маленький нюанс и так просто заменой вывести глобальную $ из main.js не получится. Хорошо бы получить совет от человека у которого это заработало. Вообще, очень сильно понравилась идея обезвредить именно джокеровскую яву переопределив имя переменной. Куда втыкать условия фичи no.conflict?
Заранее огромное спасибо за внимание.
Важным моментом в некоторых шаблонах является последовательность подключения скриптов. Я всегда подключаю так
Сначала jQuery
Потом noconflict
потом jquery-плагины
потом main.js
К примеру
Код:
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.8.2/jquery.min.js"></script>
<script type="text/javascript">jQuery.noConflict();</script>
<script src="js/ui-slider.js"></script>
<?=$mainjs?>
при этом во всех функциях jquery меняем бакс на jQuery
К примеру было:
Код:
$(function() {
    $("a.fulltext").each(function(){
        var n=jQuery(this).attr("name");
        $(this).tooltip({
        bodyHandler: function(){
        return $("#"+n)[0].innerHTML;
    }, track: true,
      delay: 0,
      showURL: false,
      fade: 250
    });
  });
});
Стало:
Код:
jQuery(function() {
    jQuery("a.fulltext").each(function(){
        var n=jQuery(this).attr("name");
        jQuery(this).tooltip({
        bodyHandler: function(){
        return jQuery("#"+n)[0].innerHTML;
    }, track: true,
      delay: 0,
      showURL: false,
      fade: 250
    });
  });
});
Иногда последовательность роли не играет, достаточно noСonflict использовать. Хз, почему так происходит, не разбирался. Просто нашел для себя 100%-й вариант и его всегда использую.
Если функции jQuery присутствуют где-то в середине кода, а не в разделе <head> То может спасти использование noConflict непосредственно перед самой функцией. В общем нужно смотреть по каждому конкретному случаю.
 
Важным моментом в некоторых шаблонах является последовательность подключения скриптов. Я всегда подключаю так
Сначала jQuery
Потом noconflict
потом jquery-плагины
потом main.js
К примеру
Код:
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.8.2/jquery.min.js"></script>
<script type="text/javascript">jQuery.noConflict();</script>
<script src="js/ui-slider.js"></script>
<?=$mainjs?>
при этом во всех функциях jquery меняем бакс на jQuery
К примеру было:
Код:
$(function() {
    $("a.fulltext").each(function(){
        var n=jQuery(this).attr("name");
        $(this).tooltip({
        bodyHandler: function(){
        return $("#"+n)[0].innerHTML;
    }, track: true,
      delay: 0,
      showURL: false,
      fade: 250
    });
  });
});
Стало:
Код:
jQuery(function() {
    jQuery("a.fulltext").each(function(){
        var n=jQuery(this).attr("name");
        jQuery(this).tooltip({
        bodyHandler: function(){
        return jQuery("#"+n)[0].innerHTML;
    }, track: true,
      delay: 0,
      showURL: false,
      fade: 250
    });
  });
});
Иногда последовательность роли не играет, достаточно noСonflict использовать. Хз, почему так происходит, не разбирался. Просто нашел для себя 100%-й вариант и его всегда использую.
Если функции jQuery присутствуют где-то в середине кода, а не в разделе <head> То может спасти использование noConflict непосредственно перед самой функцией. В общем нужно смотреть по каждому конкретному случаю.
Уважаемый, Sunday.
Учел все Ваши советы. С расположением и последовательностью подключения. На деле применил замену бакса в main.js В скриптах inc поменял $ на новую переменную.
Заработала капча, строка предупреждения исчезла без отключения джокеровской проверки по переменной и применения проверки в теге "noscript" . Хотя zaqwsx_ был прав лучше в head ставить проверку. Нормально работают javascript в форме поиска, котрая в дефолтном шаблоне справа вверху. Но, напрочь отказывается работать в форме ввода объявления, где выбор городов и категорий. Идет подгрузка и ступор. На другие страницы не полез, скорее и там тоже самое. В этой форме есть селектор id_category на который в main.js идет воздействие, но там менять по схеме нечего. Котроче тупик. И без совета не понять.
Кстати, в main.js есть участок кода с баксами {this.loader=RegExp.$2?RegExp.$2:null;_2=RegExp.$3;_3=RegExp.$4;} ???????????????? и менял и не менял. Без результата.
Буду премного благодарен за любой совет по вопросу.
 
Не выдержал читать ваши мучения с jquery. анонизм с баксом меня просто удивил. придется выложить 100% рабочий вариант. надеюсь хоть ктото чемто отблагодарит... итак слушаем и смотрим внЕмательно, ктото внематочно. Напишу один раз, т.к. очень занят. Отчасти это секрет решения этого дурного конфликта, и возможно не каждому понравится, что здесь такое выкладваю (можете после прочтения пост отправить в спам, чтобы другие больше не видели, а то малоли). Как никак, все мы конкуренты меж собой, признайте это.

итак, head.inc.php, последоватльность такая и только такая. сначала подключаем скрипт самого jquery, затем скрипт нужного нам пагина на jquery, затем стиль этого плагина. ни в коем случае стиль не ставим после
Код:
<?=$mainjs?>
<?=$stylecss?>
Тоже самое касается про весь jquery.

Вот так выглядит мой head:
Код:
<script src="jquery-1.4.4.min.js" type="text/javascript"></script>
<script src="скрипт работающий на jquery" type="text/javascript"></script>
<link href="стиль для скрипта на jquery" rel="stylesheet" type="text/css" />
<script type="text/javascript" language="javascript" src="еще какая нбудь херота на jquery делающая мегакрутым ваш сайт" charset="windows-1251"></script>
 
 
<link href="малоли чё за стиль для сайта вы ещё сюда добавите, главное чтобы это был не main джокера .css" rel="stylesheet" type="text/css" />
<link type="ico" rel="shortcut icon" href="без этого говнища нет жизни на планете favicon.ico" />
<script type="text/javascript">var servername='<?=$h?>';</script>
<!--<script src="тут можем ствить еще скрипт на jquery" type="text/javascript"></script>-->
<!--<script src="тут можем ствить еще скрипт на jquery" type="text/javascript"></script>-->
<script type="text/javascript" src="любой скрипт какой захотим" charset="windows-1251"></script>
 
<?=$mainjs?>
<?=$stylecss?>
</head>
<body>

едем далее. Со всем этим барахлом ваш jquery так и не заработает!!! Строки noconflict хоть зауказывайтесь. впрочем забудем о них. идем к следующему шагу.
открываем ваш плагин работающий на jquery в текстовом редакторе.
обычно начало плагина на джейквэри имеет вид:
Код:
$( document ).ready( function ()
а в конце
Код:
} );
Ну у кого как, впринципе не важно. некоторые скрипты уже имеют измененную переменную в начале скрипта вместо доллара, но еслиб вам такой попался, он бы работал. значит у вас примено такое начало как я указал. так вот, перед этим началом вставляем:
Код:
 jQuery(function($) {
, а вконце этого скрипта, после } ); вставим это:
Код:
} )
в итоге у нас получится jquery плагин с такой структурой:
Код:
 jQuery(function($) {
 
$( document ).ready( function ()
тут прочий текст самого плагина
    } );
    } )

И такой ФОКУС продлываем с каждым плагином jquery. саму библиотеку Jquery и обычные ява скрипты джокера трогать НЕНАДО!!! Заметьте, точки с запятой после скобочек в конце нету и как бы даже не эксперементировал с их установкой! Всё будет работать 200%. Подробнее пояснить уже не получится. Этот способ я опробавал кучу раз.
 
Код:
 jQuery(function($) {
 
$( document ).ready( function ()
тут прочий текст самого плагина
    } );
    } )

И такой ФОКУС продлываем с каждым плагином jquery. саму библиотеку Jquery и обычные ява скрипты джокера трогать НЕНАДО!!! Заметьте, точки с запятой после скобочек в конце нету и как бы даже не эксперементировал с их установкой! Всё будет работать 200%. Подробнее пояснить уже не получится. Этот способ я опробавал кучу раз.[/quote]

по моему это намного больший гемор, чем просто поменять название функции :) Править каждый плагин, при этом , что он может быть с расширением .min.js, т.е. пожат, и там не так и просто вставить все эти строки. И потом проблемы с обновлениями.
При этом надо поменять еще так header.
 
При этом надо поменять еще так header.
Нечего не понял про header, что там надо менять. Это стандартная процедура для всех способов. Очередность плагинов. Также не понял про "ужатость" и как с этим связана приставка .min. в названии файла, и вообще как сжатие скриптов по пробелам, табуляциям, переносам строк может повлиять на всё это дело.... и заметил, вы наверное используете 1000 jquery плагинов, если считаете гемором добавить в начала и в конец каждого предложенный мною способ.
От себя добавлю еще.
Пробовал менять название функции. Возможно мой плагин был какой-то особый, но с ним такая фишка не прокатила... поэтому я нашел и предложил этот способ здесь.
 
Всем привет, кто меня слушал ранее и кто не слушал, но писал. Кстати, писали все по делу и сильно помогли, особенно andreyzlat.
Его предложенный способ заработал, но есть нюансы. Эксперимепнтирую с подключением и прихожу к выводу, что jquery не для всех браузеров одинаково работает в сочетании с джокеровским main.js Простейший explode не работает в FF и медленно и криво в IE в блоке у меня правда yandex карта и она со скриптом, может тут заковыка, к Opera и GoogleHrom притензий нет.
JQUERY UI работает нормально. При подключении этого плагина, почему-то не имеет значения ставить в начале jQuery(function($) {
или в конце }) или даже }); хотя andreyzlat советовал ставить во все плагины, но в моем случае jquery User Interface не потребовалось.
Также нет разницы размещения стилей до плагина или после всеравно не работает :) некий стиль для jquery не заработал в стилях jquery ни в джокеровских, но это только в FF
Раньше считал, что лучьше применять jquery, а не простой javascript, но похоже панацеи нет.
Сейчас пытаюсь постичь возможность открыть и закрыть карту yandex средствами скрипта main.js от джокера, есть там функция details и она это делает с успехом, но не так как хотелось. При загрузке страницы блок карты открыт, при воздействии на кнопку он закрывается. Но мой смысл, чтобы при открытии страницы карта была закрыта.
Там тег "none" для display и если он включен карты больше не будет при открытии блока.
Правильно, по смыслу он ВРЕМЕННО удаляет элемент из документа. А, если он вкл при загрузке, занимаемое им место не резервируется и веб-страница формируется так, словно элемента и не было. Тоесть потом нужно изменить значение и сделать вновь видимым элемент можно с помощью скриптов, обращаясь к свойствам через объектную модель. В этом случае происходит переформатирование данных на странице с учетом вновь добавленного элемента.
Далее уже не силен и как воздействовать на объектную модель [window.]document.getElementById("elementID").style.display?????????????????? опыта нет. Может у кого-то есть? Заранее спасибо за наводку, в замен могу предложить, только водку :) ну или, как закрыть капчу джокера от спам ботов, хотя сам не проверял, ведь боты бывают разные, но в дефолтном скрипте точно есть дырка.
 
Но мой смысл, чтобы при открытии страницы карта была закрыта.

Попробуй прикрутить скрипт стандартного джокера, где при добавлении объявы мы выбираем регион. Там регион появляется с подгрузкой на ява, изначально объекта нет в DOM, а при выборе и действии "<select onchange="selcity(this.value,'resultcity');" получаем то что хотим.
Сам недавно делал одну штуку на основе "document.getElementById("elementID").style", брал один код из класса css и менял его на другой. Скрипт был в пару строчек, но к сожалению потерял его. Делал на основе найденного в яндексе...., тот как обычно оказался не рабочим, допилил... но и у меня он долго не прожил.. Тем не менее, поглянь стандартный джокеровский, думаю быстро разберешься. Я просто тоже не программист великий, но когда приспичивает сижу часами до 6 утра и результат получается.

По поводу jquery соглашусь, некоторые скрипты работают без доработок, где изначально функция уже изменена на собственную. На счет совместимости с браузерами... я юзал не сверх большое количество разных скриптов в разных проектах, но как правил глюк не в них, а в любимых ИЕ и Опера. Они не прощают ошибок не закрытых тегов, что бывает не редко, и вроде опера не всегда хорошо отрабатывает display:none в совокупности с другими стилями. Лучше файрфокса браузера пока нет, последнее время им пользуюсь чаще всего, хоть и подгоняю стили под всё что можно..

Готов выслушать предложение по модификации капчи. А то время от времени замечаю прилеты вполне нормальных объявлений... с именами авторов типа Antonov.K, ну понятно что это хрумер или подобная хрень..
 
Есть у кого нибудь рабочий модуль smsonline?
 
Назад
Сверху