• Страница 1 из 1
  • 1
Модератор форума: JonMagon  
Сообщество uCoz » Вебмастеру » JavaScript, Flash и прочие технологии » JavaScript » Что нужно удалить в скрипте? (JS)
Что нужно удалить в скрипте?
SOCHI1014
Сообщений: 863
Репутация: 229

Сообщение # 1 | 19:43:33
Всем привет. Нашел скрипт мгновенного сообщения на форум 
Код
<?if$PAGE_ID$='threadpage' or $PAGE_ID$='addthread' or $PAGE_ID$='addpoll'?><script type="text/javascript">function haveFiles(){var f = false;$("input.uplFileFl").each(function(){if ($(this).val()) f=true;});return f}document.addform.onsubmit = function(){var namewnd = "w" + Math.floor(Math.random()*999); _uWnd.alert('<img src="/.s/img/wd/3/ajax.gif" border="0" alt="Загрузка">','Загрузка',{name: namewnd, w: 250, h: 80, tm: 0}); $("#frF16").attr("disabled", true); if (haveFiles()) {_uPostForm($("form[name='addform']"), {success: function(dt){ parseResult(dt, namewnd);}})} else {$.post("/forum", $("form[name='addform']").serialize(), function(dt) {parseResult(dt, namewnd)})};return false;};function parseResult(dt, namewnd){var err = $("#frM2", dt).text(), thmurl = $("a:first", dt).attr("href"); if (err) {_uWnd.content(namewnd, '<center>'+err+'</center>'); _uWnd.setTitle(namewnd, 'Ошибка'); $("#frF16").attr("disabled", false); setTimeout(function(){ _uWnd.close(namewnd) },2000);} else if ($(dt).text().indexOf("Ответ добавлен") > -1) { $("textarea#message").val(""); $("form [name='addform']input:file").val(""); _uWnd.content(namewnd, '<center>Добавлено</center>'); _uWnd.setTitle(namewnd, 'Успех'); $("#frF16").attr("disabled", false); setTimeout(function(){ _uWnd.close(namewnd) },2000); setTimeout(function(){ <?if $PAGE_ID$='threadpage'?>$(".gDivRight:first").load(thmurl + "?" + Math.floor(Math.random()*9999) + " .gDivRight:first"); setPnt(thmurl);<?endif?><?if $PAGE_ID$='addthread' or $PAGE_ID$='addpoll'?>setPnt($("td.forumNamesBar:first a.forumBarA:last", dt).attr("href"), true);<?endif?>}, 50);} else { _uWnd.content(namewnd, 'Во время отправки произошла обишка'); _uWnd.setTitle(namewnd, 'Не удалось'); $("#frF16").attr("disabled", false); setTimeout(function(){ _uWnd.close(namewnd) },2000); }};</script><?endif?>
Так вот все работает, только если вы нажимаете 1 раз кнопку отправить сначала вылазиет сообщение, что "Не указан текст сообщения". При повторном нажатии сообщение отправляется. Подскажите в чем может быть проблема?
Спасибо

JacksonMihailov
Сообщений: 259
Репутация: 107

Сообщение # 2 | 19:46:50
В настройках сайта поставьте галку на "Не использовать визуальный редактор комментариев:"

jmDB - Текстовая база данных для uCoz
Solaris(Olga)
Сообщений: 342
Репутация: 240

Сообщение # 3 | 19:46:54
Отключите визуальный редактор и все будет работать как задумано. Но вообще надо будет посмотреть, так как это популярный скрипт становится в последнее время, а проблема у всех одна и так же)
Сообщение отредактировал Solaris(Olga) - Пятница, 29 Ноя 2013, 19:47:56
SOCHI1014
Сообщений: 863
Репутация: 229

Сообщение # 4 | 19:52:33
Все получилось, а как-то обойти эту штуку можно? Чтоб с формой визуального редактирования можно было один раз нажать и отправить?

Solaris(Olga)
Сообщений: 342
Репутация: 240

Сообщение # 5 | 20:12:41
SOCHI1014, как вариант (самый простой и даже примитивный), можно отлавливать всплывающее окно с ошибкой и при его появлении:
- закрывать это окно
- повторно нажимать на кнопку

Подойдет вам такой вариант?)
Сообщение отредактировал Solaris(Olga) - Пятница, 29 Ноя 2013, 20:13:39
SOCHI1014
Сообщений: 863
Репутация: 229

Сообщение # 6 | 20:16:31
Цитата Solaris(Olga) ()
SOCHI1014, как вариант (самый простой и даже примитивный), можно отлавливать всплывающее окно с ошибкой и при его появлении: - закрывать это окно
- повторно нажимать на кнопку

Подойдет вам такой вариант?)
Это же не автоматически будет проходить?
Цитата Solaris(Olga) ()
- закрывать это окно - повторно нажимать на кнопку

Solaris(Olga)
Сообщений: 342
Репутация: 240

Сообщение # 7 | 20:25:24
SOCHI1014, автоматически. Полная иллюзия одного нажатия. Но лишь иллюзия...
SOCHI1014
Сообщений: 863
Репутация: 229

Сообщение # 8 | 21:59:03
Цитата Solaris(Olga) ()
SOCHI1014, автоматически. Полная иллюзия одного нажатия. Но лишь иллюзия...
Буду благодарен вам если подскажете решение данного вопроса.

Сообщение отредактировал SOCHI1014 - Пятница, 29 Ноя 2013, 21:59:34
Solaris(Olga)
Сообщений: 342
Репутация: 240

Сообщение # 9 | 22:19:18
SOCHI1014, вот:

Код
<?if$PAGE_ID$='threadpage' or $PAGE_ID$='addthread' or $PAGE_ID$='addpoll'?>
      <script type="text/javascript">
           
      function haveFiles(){
      var f = false;
      $("input.uplFileFl").each(function(){

      if ($(this).val()) f=true;};);
      return f}document.addform.onsubmit = function(){
      var namewnd = "w" + Math.floor(Math.random()*999);
      _uWnd.alert('<img src="/.s/img/wd/3/ajax.gif" border="0" alt="Загрузка">','Загрузка',{name: namewnd, w: 250, h: 80, tm: 0};);      
      $("#frF16").attr("disabled", true);      
           
      if (haveFiles()) {_uPostForm($("form[name='addform']"), {success: function(dt){ parseResult(dt, namewnd);
      }};)}      
           
      else {      
           
      $.post("/forum", $("form[name='addform']").serialize(), function(dt) {parseResult(dt, namewnd)};)};return false;};
      function parseResult(dt, namewnd){var err = $("#frM2", dt).text(), thmurl = $("a:first", dt).attr("href");
      if (err) {_uWnd.content(namewnd, '<center>'+err+'</center>');
      _uWnd.setTitle(namewnd, 'Ошибка');

      $("#frF16").attr("disabled", false);  setTimeout(function(){_uWnd.close(namewnd) },0);
           
      document.getElementById('frF16').click();
      }
           
      else if ($(dt).text().indexOf("Ответ добавлен") > -1) {
      $("textarea#message").val("");
      $("form [name='addform']input:file").val("");      
      _uWnd.content(namewnd, '<center>Добавлено</center>'); _uWnd.setTitle(namewnd, 'Успех');
      $("#frF16").attr("disabled", false); setTimeout(function(){ _uWnd.close(namewnd) },2000);
           
      setTimeout(function(){
      <?if $PAGE_ID$='threadpage'?>$(".gDivRight:first").load(thmurl + "?" + Math.floor(Math.random()*9999) + " .gDivRight:first");
      setPnt(thmurl);
      <?endif?>
           
      <?if $PAGE_ID$='addthread' or $PAGE_ID$='addpoll'?>setPnt($("td.forumNamesBar:first a.forumBarA:last", dt).attr("href"), true);<?endif?>}, 50);
      } else { _uWnd.content(namewnd, 'Во время отправки произошла обишка');
      _uWnd.setTitle(namewnd, 'Не удалось'); $("#frF16").attr("disabled", false);
      setTimeout(function(){ _uWnd.close(namewnd) },2000); }};

           
      </script><?endif?>

Работает в визуальном. Там на миг появляется окошко с ошибкой и тут же скрывается. Его можно, конечно, скрывать так, чтобы оно вообще не появлялось, но у меня с ходу не получилось и я решила не мучиться с ним)) Главное, что корректно все добавляется с одного нажатия. Подумаю потом и уберу окошко, чуть попозже..
Сообщение отредактировал Solaris(Olga) - Пятница, 29 Ноя 2013, 22:24:29
SOCHI1014
Сообщений: 863
Репутация: 229

Сообщение # 10 | 22:35:20
Цитата Solaris(Olga) ()
Работает в визуальном. Там на миг появляется окошко с ошибкой и тут же скрывается. Его можно, конечно, скрывать так, чтобы оно вообще не появлялось, но у меня с ходу не получилось и я решила не мучиться с ним)) Главное, что корректно все добавляется с одного нажатия. Подумаю потом и уберу окошко, чуть попозже..
А так не скроет <div class="alert" style="display:none;"></div>?
Или так <div class="err" style="display:none;"></div>

Solaris(Olga)
Сообщений: 342
Репутация: 240

Сообщение # 11 | 22:36:22
Должно скрыть)) Попробуйте... только я не нашла блок, который выводит это окно. Там нужно через js скорее.
Сообщение отредактировал Solaris(Olga) - Пятница, 29 Ноя 2013, 22:37:35
SOCHI1014
Сообщений: 863
Репутация: 229

Сообщение # 12 | 22:38:07
Цитата Solaris(Olga) ()
Должно скрыть)) Попробуйте...
СПС большое

Сообщество uCoz » Вебмастеру » JavaScript, Flash и прочие технологии » JavaScript » Что нужно удалить в скрипте? (JS)
  • Страница 1 из 1
  • 1
Поиск: