У нас есть одобрение с нашим клиентом, только головы, чтобы покрыть меня в любом случае.
Нам нужно изменить часть кода на сайте клиентов, если файл 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
Вы должны добавить HTML обратно:
var html = $('body').html().substring(0, 10050);
$('body').html(html);
Обратите внимание, что выполнение этого и просто случайное удаление кусков HTML не является хорошей практикой и может привести к ряду проблем.
Технически вы должны это сделать:
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;