撤消jQuery或恢复DOM
Undo jQuery or revert DOM?
我有一些在页面上运行的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,在这种情况下,如果它真的很重要,我会提醒用户,并再次中断执行
- 在单击任何位置时隐藏元素,而不检查每次DOM单击
- 是否有任何snippet或jQuery插件可以列出easylist.txt模式匹配的DOM中的所有元素
- 在不使用JQuery的情况下隐藏DOM中的选定元素
- 如何在DOM元素上按类型构建此函数
- 为什么不是't窗口.恢复正常工作吗?(javascript/jquery)
- Windows形成web浏览器控件和Javascript更改的DOM
- 如何临时暂停浏览器渲染,然后恢复整个页面
- Datatables:通过DOM数据源中的名称引用列
- 在DOM中查找一个模式并替换它's的内容使用jquery
- DOM事件通过JSON转换为java
- NodeJS-readline暂停和恢复事件发射器(逐行读取)
- 撤消/恢复从DOM中删除元素
- 如何在网页中嵌入隐藏数据并使用 DOM 恢复它
- 撤消jQuery或恢复DOM
- 在节点/元素被修改/从DOM中删除后恢复节点/元素
- 在悬停事件中恢复dom对象
- 使用xpath在JavaScript中恢复DOM范围
- jQuery:保存和恢复部分dom的转义键
- 将确切的内部HTML恢复为DOM
- jQuery - 有没有办法“保存”dom元素(css)的状态并恢复到保存的状态等