撤消jQuery或恢复DOM

Undo jQuery or revert DOM?

本文关键字:DOM 恢复 jQuery 撤消      更新时间:2023-09-26

我有一些在页面上运行的jQuery。作为短期修复,我想删除页面上标签(包含JS)中的代码,这样jQuery就不会运行了。

有什么方法可以做到这一点,或者阻止代码运行吗?我想恢复到典型的DOM状态,而不是被操纵的状态。。。

编辑:

我在页面上有一个脚本标记,它运行一些javascript。

由于某些限制,我不能简单地删除它——我必须包含一个javascript文件来删除这个脚本标记/OR阻止这个javascript运行。

我想回到页面应该是什么样子,而不需要被页面上已经存在的脚本标记操作。

如果只能包含一个javascript文件,则可以尝试重新声明jquery对象,使其无法运行:

jQuery = null;
$ = null;

如果jQuery在之后加载,那么它就会被杀死。然而,这可能会导致许多javascript错误。根据这条思路,你可以插入一些坏掉的JS,如果它在jQuery东西之前,它就会阻止jQuery的执行。

我想不出需要它的场景
事实上,在操作后恢复DOM是不可能的。reset按钮不会恢复DOM

如果它在一个方法中,你可以在代码运行前使用return false;,你也可以注释掉你的代码,或者用一个永远不会运行的方法包装你的代码:

$("p").hide();

变为:

function() {
    $("p").hide();
}

或者我误解了你的问题?

只需将代码移出jQuery(document).ready函数,就可以使HTML保持原样。

在阅读了编辑中添加的内容后,我认为在加载该脚本之前,唯一能看到页面的方法就是在该特定脚本上使用Firebug脚本控制台添加一个断点。

编辑:在阅读OP编辑后添加进一步的答案。

我认为在不操纵源代码或dom的情况下实现这一目标的唯一方法是在执行代码之前测试cookie,如果它不存在,则设置它并继续执行代码的其余部分,类似于。当您想将dom中所做的更改恢复到"原始"时,只需刷新窗口,cookie的存在将阻止第二次执行

(function() {
    if($.cookie('foo') == null) {
        $.cookie('foo', 'bar');
        $('#alert').click(function() {
            alert('run');
        });
    }
})();

我能看到的唯一缺陷是,如果用户拒绝cookie,在这种情况下,如果它真的很重要,我会提醒用户,并再次中断执行