从html标记中删除javascript事件的方法?
有没有办法从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
<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');