Javascript 替换为正则表达式,然后撤消

Javascript 替换为正则表达式,然后撤消,javascript,jquery,Javascript,Jquery,我有一个非常独特的问题,我试图运行一些jquery逻辑来临时替换页面上的文本。然后运行一些逻辑(我为正在使用的工具截图)。到目前为止,这工作得很好,问题是由于遗留代码,我需要恢复页面上的replace调用所做的更改 有什么好办法吗? 出于好奇,我目前有: $('body').html($('body').html().replace(/[a-zA-Z0-9\\*]*@.*\\.com/g,'[replaced for screenshot]')) 谢谢 我会质疑你的动机和推理,但我还是会给出一

我有一个非常独特的问题,我试图运行一些jquery逻辑来临时替换页面上的文本。然后运行一些逻辑(我为正在使用的工具截图)。到目前为止,这工作得很好,问题是由于遗留代码,我需要恢复页面上的replace调用所做的更改

有什么好办法吗? 出于好奇,我目前有:

$('body').html($('body').html().replace(/[a-zA-Z0-9\\*]*@.*\\.com/g,'[replaced for screenshot]'))

谢谢

我会质疑你的动机和推理,但我还是会给出一个答案:

var backup_body_html = $('body').html();
$('body').html(backup_body_html.replace(/[a-zA-Z0-9\\*]*@.*\\.com/g,'[replaced for screenshot]'));
之后:

$('body').html(backup_body_html);
(除非您需要保留事件处理程序等,在这种情况下需要克隆)

克隆方法:

var body_children = $("body").clone(true,true).children();
//other stuff (i.e. replacements)
//then:
$("body").html("");
$("body").append(body_children);

我会质疑你的动机和推理,但我还是会给出一个答案:

var backup_body_html = $('body').html();
$('body').html(backup_body_html.replace(/[a-zA-Z0-9\\*]*@.*\\.com/g,'[replaced for screenshot]'));
之后:

$('body').html(backup_body_html);
(除非您需要保留事件处理程序等,在这种情况下需要克隆)

克隆方法:

var body_children = $("body").clone(true,true).children();
//other stuff (i.e. replacements)
//then:
$("body").html("");
$("body").append(body_children);
以前

之后

以前

之后


不是很严重,但我必须

location.reload();

不是很严重,但我必须

location.reload();

不可能!除非在替换之前先存储该值,例如在
$(“body”).data()中
@mishik fair,否则我会让jQuery程序员重新开始工作:);不可能!除非在替换之前先存储该值,例如在
$(“body”).data()中
@mishik fair,否则我会让jQuery程序员重新开始工作:);看起来像是@SmokeyHP答案的完全复制品看起来像是@SmokeyHP答案的完全复制品这很好,我想说这是最简单的解决方案,但我有一个小问题。我是通过POST到达该页面的,因此我将弹出“是否要重新发送您已经提交的信息”对话框。我能不能惊讶一下?如果可以丢失POST变量,您可以执行
window.location=window.location.href。如果不行,你必须做一些事情,比如在页面中存储原始的POST变量,然后通过POST提交一个新表单。这很好,我想说这是最简单的解决方案,但我有一个小问题。我是通过POST到达该页面的,因此我将弹出“是否要重新发送您已经提交的信息”对话框。我能不能惊讶一下?如果可以丢失POST变量,您可以执行
window.location=window.location.href。如果不行,你必须做一些事情,比如在页面中存储原始的POST变量,然后通过POST提交一个新的表单。仅考虑此方法是因为保留了大量遗留代码。我不确定事件处理程序是否会有问题(这在我的冒烟测试中运行良好)。我该如何克隆页面以保留状态?@Valchris对延迟表示抱歉,请参阅克隆方法的更新答案,质疑理由是否完全正确。仅考虑此方法是因为保留了大量遗留代码。我不确定事件处理程序是否会有问题(这在我的冒烟测试中运行良好)。我将如何克隆页面以保留状态?@Valchris抱歉延迟,请参阅克隆方法的更新答案