• 15 апреля стартует «Курс «SQL-injection Master» ©» от команды The Codeby

    За 3 месяца вы пройдете путь от начальных навыков работы с SQL-запросами к базам данных до продвинутых техник. Научитесь находить уязвимости связанные с базами данных, и внедрять произвольный SQL-код в уязвимые приложения.

    На последнюю неделю приходится экзамен, где нужно будет показать свои навыки, взломав ряд уязвимых учебных сайтов, и добыть флаги. Успешно сдавшие экзамен получат сертификат.

    Запись на курс до 25 апреля. Получить промодоступ ...

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

NetWood

Lotus Team
17.04.2008
545
93
BIT
8
Известно, что сервер Domino автоматически вставляет на web форму тег <form action=""> в начале страницы после тега <body>. На простых дизайнах на это можно не обращать внимания или просто заткнуть начальным закрывающим тегом </form>, . Однако, я столкнулся с одним адаптивным шаблоном, на котором этот тег здорово портит жизнь и в начале страницы появляется белая полоска, которую никак не убрать.

Untitled3.png

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

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

Соответственно, форма Domino должна начинаться тегом onimod</form>
Untitled1.png


И заканчиваться тегом <form>onimod
Untitled2.png


Которые обе убьются сриптом и, в итоге, мы здорово заживем.
Untitled4.png

Если глянуть на содержимое хтмл этой страницы, то не будет ни одного бездомного form. Красиво!

шаблон[/URL] для самостоятельной проверки.

Внимательно слушаю, если есть другие конструктивные предложения :).
 
Последнее редактирование:
R

romych2004

Код:
$('body > form').remove()
Код:
$('body > form').css('display', 'none')
?
 
  • Нравится
Реакции: NetWood

ToxaRat

Чёрный маг
Green Team
06.11.2007
3 332
42
BIT
0
а зачем вообще доминошную форму показывать?
 

ToxaRat

Чёрный маг
Green Team
06.11.2007
3 332
42
BIT
0
я о другом, любой сабмит можно делать на подготовленную универсальную форму, у которой внешнего вида вообще нет
 

NetWood

Lotus Team
17.04.2008
545
93
BIT
8
...и проститься с лотусовыми полями и собакоформулами в них. Об этом и речь в топике. А так, да, готовить заранее полезно.
 
A

anna

...и проститься с лотусовыми полями и собакоформулами в них. Об этом и речь в топике. А так, да, готовить заранее полезно.
Я несколько подзабыла уже как что в вебе, но решала точно так же, как вы.
 

rinsk

Lotus Team
12.11.2009
1 151
125
BIT
3
...и проститься с лотусовыми полями и собакоформулами в них. Об этом и речь в топике. А так, да, готовить заранее полезно.
а зачем удалять форму то? Норм там все) Мало того - можно юзать и рефреши стандартные даже с полями вне формы - типа динамическими, подгружаемые через 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;
}

Баловался еще лотусовыми чекбоксами\селектам обернутыми в контейнер - пашет...
 
Последнее редактирование:

NetWood

Lotus Team
17.04.2008
545
93
BIT
8
Мало того - можно юзать и рефреши стандартные даже с полями вне формы - типа динамическими, подгружаемые через rest. Эдакий а-ля иксПейдж
Тут я немного не понял, так как не хватает полного контекста задачи, (в скобках читаем слабая квалификация в 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);});
});
// -->
 
Мы в соцсетях:

Обучение наступательной кибербезопасности в игровой форме. Начать игру!