0

我们得到了客户的批准,只是提醒我以任何方式掩护我。

如果在他们的计算机上看到 cookie,我们需要修改客户端站点中的一些代码,客户端的站点是 ASPX 格式。我创建了代码的第一部分,但我遇到的问题是:

我需要删除页面正文的最后 2000 个字符(左右),然后将新的 HTML 附加到它。

我试过了:

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

但这不起作用,我还尝试复制该 HTML(确实有效)并将其与新代码一起放回原处,但它创建了一个运行脚本的循环。

关于我应该做什么的任何建议?遗憾的是,它必须是 javascript/jQuery。

//////// 编辑 ////////////

我的脚本由谷歌标签管理器引入,并添加到页面底部,然后我的脚本运行,这就是导致脚本循环的原因。基本上,这是设置:

我的服务器上的脚本使用谷歌标签管理器加载到客户端站点,添加到页面底部。从那里它可以执行,但是在执行此操作时,它会创建一个添加 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

4

2 回答 2

1

您必须将 HTML 添加回来:

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

请注意,这样做并且只是随机删除 HTML 块不是好的做法,并且可能会导致许多问题。

于 2013-09-19T21:23:08.987 回答
0

从技术上讲,您应该能够做到这一点:

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

但正如我在上面的评论中指出的那样,这是一个非常糟糕的主意。

如果您有权访问页面的 HTML,请将要替换的代码包装在可识别的标记中并将其删除。IE:

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

如果您无法编辑 HTML,但您知道它始终是最后一个script标签,您可以执行以下操作:

var scripts = $('script');
scripts.get(-1).remove;
于 2013-09-19T21:24:30.913 回答