我有一些在页面上运行的jQuery。作为一个短期修复,我想删除页面上的标记(包含JS)中的代码,以便这个jQuery不会运行。
有什么方法可以做到这一点,或者阻止代码运行?我想恢复到典型的DOM状态,而不是被操纵的状态......
编辑:
我在页面上有一个运行一些javascript的脚本标记。
由于某些限制,我不能简单地删除它 - 我必须包含一个javascript文件来删除此脚本标记/或阻止此javascript运行。
我想恢复页面的外观,而不必被页面上已有的脚本标记操纵。
答案 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,在这种情况下,如果真的很重要,我会提醒用户并再次中断执行