jQuery Удалить часть HTML и добавить новый HTML

0

У нас есть одобрение с нашим клиентом, только головы, чтобы покрыть меня в любом случае.

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

Мне нужно удалить последние 2000 символов (или около того) тела страницы, а затем добавить к нему новый HTML-код.

Я пытался:

$('body').html().substring(0, 10050)

но это не сработает, я также попытался скопировать этот HTML (который работал) и вернуть его с новым кодом, но он создал цикл запуска скрипта.

Любые предложения о том, что я должен делать? К сожалению, это должно быть javascript/jQuery.

////////РЕДАКТИРОВАТЬ////////////

Мой скрипт включен в Диспетчер тегов Google и добавлен на страницу внизу, тогда мой скрипт запускается, вот что вызывало цикл в скрипте. В принципе, вот настройка:

Мой скрипт на моем сервере загружается на сайт клиента с помощью Диспетчера тегов Google, который добавлен в нижней части страницы. Оттуда он может выполнять, но при этом он создает цикл добавления скрипта Диспетчера тегов Google, в результате чего мой код снова добавляется, заставляя его снова выполнить повторный запуск.

Клиент не хочет ничего делать, он в значительной степени сказал нам, чтобы просто понять это, и не привлекать его веб-парня.

Это код прямо со своего сайта, который я пытаюсь изменить.

<script language="JavaScript">
jQuery(function($){
$('#txtPhone').mask('(999) 999-9999? x99999');
$('#submit').click(function(){CheckForm();});
});
function CheckForm(theForm){  
if (!validRequired($('#txtfirst_name'),'First Name')){ return false; } 
if (!validRequired($('#txtlast_name'),'Last Name')){ return false; }
if (!validRequired($('#txtEmail'),'E-Mail Address')){ return false; } 
if (!validEmail($('#txtEmail'),'E-Mail Address',true)){ return false; }
if (!validPhone($('#txtPhone'),'Phone Number')){ return false; }

var dataList='fa=create_lead';
dataList += '&name=' + $('#txtfirst_name').val();
dataList += '&lastname=' +$('#txtlast_name').val();
dataList += '&email=' + $('#txtEmail').val();
dataList += '&phone=' + $('#txtPhone').val();

dataList += '&vid=' + dealerOnPoiVisitId;
dataList += '&cid=' + dealerOnPoiClientId;
dataList += '&leadType=9';
dataList += '&leadSrc=32'; ////////////////////// THIS IS WHAT I AM ATTEMPTING TO CHANGE /////////////////////////
dataList += '&contactname=' + $('#contactname').val();
dataList += '&comment=' + encodeURIComponent($('#txtComments').val());
dataList += '&dvc=' +encodeURIComponent(DealerOn_Base64.encode($('#txtfirst_name').val() + $('#txtEmail').val()));
var lid=1;
$('#submit').prop('disabled', true);
 $.ajax({
url:'/lead.aspx',
data: dataList,
dataType: 'json',
success: function(data){
$('#submit').prop('disabled', false);
lid=data.leadid;
if (lid > 1){
$('#submit').prop('disabled', false);
var jqxhr = $.post('/lead.aspx?fa=complete_lead&leadid=' + lid , function() {
window.location.href='/thankyou.aspx?name=' + $('#txtfirst_name').val() + '&lid=' + data.leadid;
});
}
},
error: function(request,error) {
$('#submit').prop('disabled', false);
}
}); 
}
</script>

Это страница на сайте: www.moremazda.com/contactus.aspx

2 ответа

1
Лучший ответ

Вы должны добавить HTML обратно:

var html = $('body').html().substring(0, 10050);
$('body').html(html);

Обратите внимание, что выполнение этого и просто случайное удаление кусков HTML не является хорошей практикой и может привести к ряду проблем.

  • 0
    Проблема в том, что он создал цикл выполнения этого, вызывая сбой страницы.
  • 2
    Тогда вы делаете что-то еще неправильно, так как это не создает цикл, просто куча других проблем.
Показать ещё 2 комментария
0

Технически вы должны это сделать:

var bodyHTML = $('body');
bodyHTML.html(bodyHTML.html().substring(2000));

Но, как я отметил в своем комментарии выше, это ДЕЙСТВИТЕЛЬНО ПЛОХАЯ идея.

Если у вас есть доступ к HTML на страницу, оберните код, который вы хотите заменить в идентифицируемом теге, и удалите его. То есть:

<div id="tobeRemoved">Lorem Ipsum</div>
<script>
    $('#toBeRemoved').empty();
</script>

Если вы не можете редактировать HTML, но знаете, что это всегда последний тег script, вы можете сделать что-то вроде этого:

var scripts = $('script');
scripts.get(-1).remove;

Ещё вопросы

Сообщество Overcoder
Наверх
Меню