1. Наш канал codeby в telegram. Пишем об информационной безопасности, методах защиты информации, о программировании. Не пропускай новости с кодебай, будь в тренде ! Подробнее ...

    Скрыть объявление

Удаление автоматического тега <form action="">

Тема в разделе "Lotus - Программирование", создана пользователем NetWood, 21 ноя 2017.

Метки:
  1. NetWood

    NetWood Well-Known Member
    Lotus team

    Репутация:
    0
    Регистрация:
    17 апр 2008
    Сообщения:
    367
    Симпатии:
    14
    Известно, что сервер Domino автоматически вставляет на web форму тег <form action=""> в начале страницы после тега <body>. На простых дизайнах на это можно не обращать внимания или просто заткнуть начальным закрывающим тегом </form>, как это рекомендует сама IBM. Однако, я столкнулся с одним адаптивным шаблоном, на котором этот тег здорово портит жизнь и в начале страницы появляется белая полоска, которую никак не убрать.

    Удаление автоматического тега <form action="">
    Внизу страницы также появляется неубираемая белая полоска от <form action=""></form>.

    Поскольку в шаблоне используется jQuery, то я решил поставить простой костыль для убивания оной неприятности через $('form').remove с меткой onimod.
    Код:
    $(function() {
            $('form').remove( ":contains('onimod')" ); //Remove Domino autogen <form action=""></form>
    ...
    Соответственно, форма Domino должна начинаться тегом onimod</form>
    Удаление автоматического тега <form action="">

    И заканчиваться тегом <form>onimod
    Удаление автоматического тега <form action="">

    Которые обе убьются сриптом и, в итоге, мы здорово заживем.
    Удаление автоматического тега <form action="">
    Если глянуть на содержимое хтмл этой страницы, то не будет ни одного бездомного form. Красиво!

    Ссылка на free Editorial by HTML5 UP шаблон для самостоятельной проверки.

    Внимательно слушаю, если есть другие конструктивные предложения :).
     
    #1 NetWood, 21 ноя 2017
    Последнее редактирование: 21 ноя 2017
    Vertigo, IioS и WebWare Team нравится это.
  2. romych2004

    romych2004 Well-Known Member
    Lotus team

    Репутация:
    1
    Регистрация:
    1 апр 2013
    Сообщения:
    103
    Симпатии:
    19
    Код:
    $('body > form').remove()
    Код:
    $('body > form').css('display', 'none')
    ?
     
    NetWood нравится это.
  3. ToxaRat

    ToxaRat Чёрный маг
    Lotus team

    Репутация:
    0
    Регистрация:
    6 ноя 2007
    Сообщения:
    3.195
    Симпатии:
    24
    а зачем вообще доминошную форму показывать?
     
  4. NetWood

    NetWood Well-Known Member
    Lotus team

    Репутация:
    0
    Регистрация:
    17 апр 2008
    Сообщения:
    367
    Симпатии:
    14
    Ой, все! Давайте в этой теме не будем обсуждать статические сайты. В динамике все прекрасно работает. Годами.
     
  5. ToxaRat

    ToxaRat Чёрный маг
    Lotus team

    Репутация:
    0
    Регистрация:
    6 ноя 2007
    Сообщения:
    3.195
    Симпатии:
    24
    я о другом, любой сабмит можно делать на подготовленную универсальную форму, у которой внешнего вида вообще нет
     
  6. NetWood

    NetWood Well-Known Member
    Lotus team

    Репутация:
    0
    Регистрация:
    17 апр 2008
    Сообщения:
    367
    Симпатии:
    14
    ...и проститься с лотусовыми полями и собакоформулами в них. Об этом и речь в топике. А так, да, готовить заранее полезно.
     
  7. anna

    anna Well-Known Member
    Lotus team

    Репутация:
    0
    Регистрация:
    3 июн 2014
    Сообщения:
    374
    Симпатии:
    10
    Я несколько подзабыла уже как что в вебе, но решала точно так же, как вы.
     
  8. rinsk

    rinsk Well-Known Member
    Lotus team

    Репутация:
    0
    Регистрация:
    12 ноя 2009
    Сообщения:
    895
    Симпатии:
    84
    а зачем удалять форму то? Норм там все) Мало того - можно юзать и рефреши стандартные даже с полями вне формы - типа динамическими, подгружаемые через rest. Эдакий а-ля иксПейдж.
    что то вроде такого:
    Код:
    if (!window._doClickNew && window._doClick) {
            window._doClickNew=window._doClick
            window._doClick=window.newDoClick
    }
    function newDoClick(v, o, t, h){
        if(v=="$Refresh" || v.indexOf('$TableRow')!=-1 || v.indexOf('/$Body/')!=-1){
            fields_store(stored_content)
            h='';
    window.sessionStorage.setItem('$RefreshPoz',$(document).scrollTop())
            // отключаем onSubmit у формы
            if (v.indexOf('/$Body/')==-1) {
                document.forms[0].onsubmit=function() {return beforeSubmit()};
            }
        }
        return window._doClickNew(v, o, t,h)
    }
    beforeSubmit() - что то типа:
    Код:
    function beforeSubmit(){
        progress_show();
        $('#event_actions input[type="button"]').prop("disabled", true)
        $('body').addClass('body_onsubmit') 
        return true;
    }
    
    Баловался еще лотусовыми чекбоксами\селектам обернутыми в контейнер - пашет...
     
    #8 rinsk, 5 дек 2017
    Последнее редактирование: 5 дек 2017
  9. NetWood

    NetWood Well-Known Member
    Lotus team

    Репутация:
    0
    Регистрация:
    17 апр 2008
    Сообщения:
    367
    Симпатии:
    14
    Тут я немного не понял, так как не хватает полного контекста задачи, (в скобках читаем слабая квалификация в JS :) ), но вот на этой демке использовал выгрызание RT контента для подгрузки содержимого в бесконечную вьюху как-то так:
    Код:
    //Get only data body content in <body ...><form action="">content</form></body>
    function getbodycontent(data,start,stop) {
        //alert(data);
        return data.substring(data.indexOf(start)+start.length,data.indexOf(stop));
    };
    
    //Load content on scroll automatically   
    var loading = false;
    $(window).scroll(function(){
    if((($(window).scrollTop()+$(window).height())+250)>=$(document).height()){
      if(loading == false){
      loading = true;
      $('#loadingbar').show();     //Display down50.png as loading true. Style set in css/style.css
          //Load RT Memo from Lotus Domino View preloaded as function doAjax(id,url) in Form $$ViewTemplate for doMemoLoad
        $.get("doMemoLoad?OpenView&start="+$('#loaded_max').val()+"&count=1")
        .success(function(data){
                var $body = getbodycontent(data, '<form action="">','</form>');
                    $('#content_load').append($body).fadeIn();    //Add content to id='content'
                    $('#loaded_max').val(parseInt($('#loaded_max').val())+1);    //Increment '#loaded_max'
                    $('#loadingbar').hide(); //Hide down50.png after loading
                    loading = false;
              })
        .error(function(xhr,statusText){
                loading = false; //for continue load without refresh page
                $.toast('Network '+statusText+ ' '+ xhr.status);           
                });
      }
    }
    });   
    
    //Set Load Max for Load content on scroll automatically
    $(document).ready(function() {
    $('#loaded_max').val(3); //<input type="hidden" size="1" id="loaded_max">
        //After load jQuery preload first two Rich Text memo in id='content_load' and set next $('#loaded_max').val(3)
        $.get("doMemoLoad?OpenView&start=1&count=2")     
        .success(function(data){
            var $body = getbodycontent(data, '<form action="">','</form>');
                $('#content_load').append($body).fadeIn();    //Load content to id='content'
              })
        .error(function(xhr,statusText){$.toast('Network '+statusText+ ' '+ xhr.status);});
    });
    // -->
     
Загрузка...

Поделиться этой страницей