Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/395.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
从html标记中删除javascript事件的方法?_Javascript_Html - Fatal编程技术网

从html标记中删除javascript事件的方法?

从html标记中删除javascript事件的方法?,javascript,html,Javascript,Html,有没有办法从html标记中删除所有javascript事件 比如说 <img src=" " onclick="" /> <img src=" " onerror="" /> 我想从这些标签上去掉onclick和onerror。与示例一样,我想从html标记中删除所有javascript事件。您可以查看jquery.unbind() 参考: 使用.bind()可以在需要时轻松地将事件处理程序放回原位。您可以执行以下操作以清除事件: // get all img el

有没有办法从html标记中删除所有javascript事件

比如说

<img src=" " onclick="" />
<img src=" " onerror="" />


我想从这些标签上去掉onclick和onerror。与示例一样,我想从html标记中删除所有javascript事件。

您可以查看jquery
.unbind()

参考:


使用
.bind()

可以在需要时轻松地将事件处理程序放回原位。您可以执行以下操作以清除事件:

// get all img elements
var imgElements = document.getElementsByTagName('img');
// loop elements
for (var i = 0; i < imgelements.length; i++) { 
  // clear handler
  imgElements[i].onclick = null;
  // add other handlers here
  // imgElements[i].<here> = null;
}
//获取所有img元素
var imgElements=document.getElementsByTagName('img');
//循环元素
对于(var i=0;i

更新1-文档上的所有元素

如果要获取文档中的所有元素,请使用
document.getElementsByTagName('*')

更新2-所有事件


要清除所有事件,请查看在document.onload事件(未测试)中尝试此javascript:

var all=document.getElementsByTagName('*');
对于(变量i=0;i
如果您的意思是“删除”,就像从页面源中物理删除它们一样,那么您可能可以使用正则表达式来获取其中的大部分,将(\w+?)=“(.*?”上的模式
替换为空字符串。(我还没有测试,可能需要调整)

如果您的意思是“移除”,如在逻辑上通过解除绑定来移除它们,那么您可以在jQuery中使用unbind()方法,或者通过DOM将每个事件设置为null循环。

使用jQuery:

$('*').each(function(){      
    if ($(this).is('img')) {
        $(this).unbind('click');
    }
});
如果只想删除特定的函数onclick事件,可以这样做

 $(this).unbind('click', FunctionName);
从jQuery 1.7开始,您还可以使用
$.on()和$.off()
进行事件绑定,因此要解除单击事件的绑定,您可以使用更简单、更整洁的:

$(this).off('click');

不仅仅是onclick事件。想要删除所有事件…太好了。退格按钮也适用于其他事件@ThiyagarajanSelvaraj您的意思是同时删除属性吗?是的。我想去掉所有属性,如onclick、ondblClick或任何事件。他想要所有HTML标记,而不仅仅是图像。@Philipp这不是我阅读OPs问题的方式。。。但无论如何,我已经更新了答案-
文档。所有
都是Microsoft的东西,不应该用于有关
文档的Microsoft软解释。所有
事件Microsoft说不要使用
文档。所有
->这真的有效吗?通过属性指定的事件可以通过这种方式取消吗?不要使用正则表达式来解析和操作HTML:一般来说,我完全同意,但如果您使用的是已知子集,则没有理由不这样做。我理解这个问题,因为OP希望从页面源代码中删除javascript事件。如果我必须做类似的事情,如果我要通过手动删除,我会被诅咒。
$(this).off('click');