如何在构建HTML时删除JavaScript代码?

如何在构建HTML时删除JavaScript代码?,第1张

概述我试图解析一些 HTML来查找其中的图像. 例如,我创建了一个动态div并解析了这样的标签: var tmpDiv = document.createElement("DIV");tmpDiv.innerHTML = html; HTML应该是无脚本的,但是有例外,一个代码段在图像标记下具有以下代码: <img src=\"path" onload=\"NcodeImageResizer.cre 我试图解析一些 HTML来查找其中的图像.

例如,我创建了一个动态div并解析了这样的标签:

var tmpdiv = document.createElement("div");tmpdiv.INNERHTML = HTML;

HTML应该是无脚本的,但是有例外,一个代码段在图像标记下具有以下代码:

<img src=\"path" onload=\"NcodeImageResizer.createOn(this);\" />

通过创建临时div,“onload”函数调用自身并创建了一个JavaScript错误.

反正有没有告诉浏览器在构建HTML元素时忽略JavaScript代码?

编辑:
我忘了提到以后我想在我的文档中的div中显示这个HTML所以我正在寻找一种忽略脚本而不使用字符串 *** 作的方法.

谢谢!

解决方法 这样做的一种方法是遍历div的子节点并删除您希望的事件处理程序.

考虑以下:

我们有一个包含一些HTML的变量,而这个HTML又有一个内联的onload事件处理程序:

var HTML = "<img src=\"http://www.puppIEsden.com/pics/1/doberman-puppy5.jpg\" alt=\"\" onload=\"alert('hello')\" />"

我们创建一个容器来放入这个HTML,我们可以循环遍历子节点并删除相关的事件处理程序:

var newdiv = document.createElement("div");$(newdiv).HTML(HTML);$(newdiv).children().each(function(){this.onload = null});

这是一个有效的例子:http://jsfiddle.net/XWrP3/

UPDATE

OP正在询问是否同时删除其他事件.据我所知,无法以自动方式删除所有事件,但您可以根据需要将每个事件设置为null:

$(newdiv).children().each(function(){    this.onload = null;    this.onchange = null;    this.onclick = null;});
总结

以上是内存溢出为你收集整理的如何在构建HTML时删除JavaScript代码?全部内容,希望文章能够帮你解决如何在构建HTML时删除JavaScript代码?所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://www.outofmemory.cn/web/1059493.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-25
下一篇 2022-05-25

发表评论

登录后才能评论

评论列表(0条)

保存