Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/399.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript jQuery删除部分HTML并附加新的HTML_Javascript_Jquery_Html_Asp.net - Fatal编程技术网

Javascript jQuery删除部分HTML并附加新的HTML

Javascript jQuery删除部分HTML并附加新的HTML,javascript,jquery,html,asp.net,Javascript,Jquery,Html,Asp.net,我们已经得到了客户的同意,只是提醒一下以任何方式掩护我 我们需要修改客户端站点中的一些代码。如果在客户端的计算机上看到cookie,则客户端站点为ASPX格式。我已经创建了代码的第一部分,但我遇到的问题是: 我需要删除页面主体的最后2000个字符(大约),然后将新的HTML附加到其中 我试过: $('body').html().substring(0, 10050) 但这不起作用,我还尝试复制那个HTML(它确实起作用)并用新代码将其放回原处,但它创建了一个运行脚本的循环 对我应该做什么有什么

我们已经得到了客户的同意,只是提醒一下以任何方式掩护我

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

我需要删除页面主体的最后2000个字符(大约),然后将新的HTML附加到其中

我试过:

$('body').html().substring(0, 10050)
但这不起作用,我还尝试复制那个HTML(它确实起作用)并用新代码将其放回原处,但它创建了一个运行脚本的循环

对我应该做什么有什么建议吗?遗憾的是,它必须是javascript/jQuery

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

我的脚本由Google Tag Manager引入,并添加到底部的页面,然后我的脚本运行,这就是导致脚本中出现循环的原因。基本上,以下是设置:

我的服务器上的脚本使用添加到页面底部的Google Tag Manager加载到客户端站点。从那里它可以执行,但当执行此操作时,它会创建一个添加GoogleTagManager脚本的循环,导致我的代码重新添加,再次执行

客户不愿意做任何事情,他几乎告诉我们要弄清楚,不要让他的网络助手参与进来

这是直接从他们的网站上我试图编辑的代码

<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>

jQuery(函数($){
$('#txtPhone')。掩码('(999)999-9999?x99999');
$(“#提交”)。单击(函数(){CheckForm();});
});
函数检查形式(theForm){
如果(!validRequired($('txtfirst_name'),'First name')){return false;}
如果(!validRequired($('#txtlast_name'),'Last name')){return false;}
如果(!validRequired($('#txtEmail'),'E-Mail Address')){return false;}
如果(!validEmail($('#txtEmail'),'E-Mail Address',true)){return false;}
如果(!validPhone($('#txtPhone'),'Phone Number'){返回false;}
var dataList='fa=create_lead';
dataList+='&name='+$('#txtfirst_name').val();
dataList+='&lastname='+$('#txtlast_name').val();
dataList+='&email='+$('#txtEmail').val();
dataList+='&phone='+$('#txtPhone').val();
数据列表+='&vid='+dealerOnPoiVisitId;
dataList+='&cid='+dealerOnPoiClientId;
dataList+='&leadType=9';
dataList+='&leadSrc=32';//这就是我试图改变的/////////////////////////
dataList+='&contactname='+$('#contactname').val();
dataList+='&comment='+encodeURIComponent($('#txtComments').val();
dataList+='&dvc='+encodeURIComponent(DealerOn_Base64.encode($('.#txtfirst_name').val()++$('.#txtmail').val());
var-lid=1;
$(“#提交”).prop('disabled',true);
$.ajax({
url:“/lead.aspx”,
数据:数据列表,
数据类型:“json”,
成功:功能(数据){
$(“#提交”).prop('disabled',false);
lid=data.leadid;
如果(盖子>1){
$(“#提交”).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;
});
}
},
错误:函数(请求、错误){
$(“#提交”).prop('disabled',false);
}
}); 
}

这是网站上的页面: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元素,那么在删除最后2000个字符后,您打算如何确保留下有效的HTML?我基本上只需要修改JS代码片段中靠近站点底部的一行代码(在
正文
的最后2000个字符中,我复制了HTML,并重新创建它以使用
$('body')。append();
jQuery中的命令。如果我能够在标记中搜索特定的代码行,并对其进行修改,这将是1000倍的简单。准确地告诉我们您正在尝试做什么,也许我们会想出一些非常聪明的方法!您会意识到,一旦解析并执行了脚本标记,更改它不会有什么不同,因为它已经执行了。它不像DOM元素那样,一旦删除元素,更改就可见了?但是一旦处理该单击的事件处理程序加载到内存中,更改脚本标记内的文本将一事无成?问题是,它创建了一个执行该操作的循环,导致页面崩溃。然后,您又在做其他错误的事情,就像这样这不是一个循环,只是一大堆其他问题。它比我解释的更复杂,这是我的错。我现在正在编辑这篇文章。这就像说:“我想要一辆更短的车,你能把后面的最后15英寸剪短吗?”
var scripts = $('script');
scripts.get(-1).remove;