撤消jQuery还是还原DOM?

时间:2012-01-27 10:38:39

标签: javascript jquery

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

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

编辑:

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

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

我想恢复页面的外观,而不必被页面上已有的脚本标记操纵。

5 个答案:

答案 0 :(得分:1)

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

jQuery = null;
$ = null;

这会杀死jQuery,只要在之后加载即可。然而,这可能会导致很多javascript错误。在那条思路上,你可以插入一些破碎的JS,它会阻止jQuery执行,如果它是之前的 jQuery东西。

答案 1 :(得分:0)

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

在编辑中阅读您的添加内容之后,我认为在加载该脚本之前只能看到该页面是在该特定脚本中使用Firebug脚本控制台添加断点。

编辑:阅读OP编辑后添加更多答案。

答案 2 :(得分:0)

我无法考虑需要它的场景 事实上,在操纵之后无法恢复DOM。 reset按钮不会还原DOM

答案 3 :(得分:0)

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

$("p").hide();

变为:

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

或者我误解了你的问题?

答案 4 :(得分:0)

我能想到你在没有操作源或dom的情况下实现这一目标的唯一方法是在代码执行之前测试cookie,如果它不存在则设置它并继续执行其余的代码this 这样的东西。如果您想将dom中所做的更改还原为“原始”,只需刷新窗口并且cookie的存在将阻止第二次执行

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

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