javascript - 使用 InnerHTML 解析 IMG 标签 Javascript

标签 javascript parsing dom image innerhtml

这是一个难题:

我正在做一个 javascript 效果。为此,我使用 .innerHTML 拉取一个节点及其子节点(包括图像)。然后尝试通过 DOM 解析它。当它到达图像标签时,它会抛出一个解析错误。当我提醒 innerHTML 时,我看到它正在去除 IMG 标签的结尾部分。

我不确定问题出在解析器还是 innerHTML 上。我如何获取此节点、获取内部内容并将其解析为 XML?

看起来类似的事情发生在这里:innerHTML removing closing slash from image tag

(经过将近两天的搜索,这是我在互联网上发现的唯一涉及此问题的页面。)

这是我使用的解析代码:

function loadXMLString(txt) {
    if (window.DOMParser) {
        parser=new DOMParser();
        xmlDoc=parser.parseFromString(txt,"text/xml");
    } else { // Internet Explorer
        xmlDoc=new ActiveXObject("Microsoft.XMLDOM");
        xmlDoc.async="false";
        xmlDoc.loadXML(txt); 
    }
    return xmlDoc;
}

解决方案是更改 MIME 类型,但是如何使用 JavaScript 解析器(MS ActiveX 和其他浏览器的标准)来做到这一点?我应该使用什么 mime?

这是我试图解析的 DOM 元素:

<div style="display:none" id="ItemsContainer" name="ItemsContainer">
    <SPAN>
       <a href="url1"><img src="1.jpg" alt="alt1" /></a>
       <a href="url2"><img src="2.jpg" alt="alt2" /></a>
       <a href="url3"><img src="3.png" alt="alt3" /></a>
       <a href="url4"><img src="4.jpg" alt="alt4" /></a>
    </SPAN>
</div>

如果我将标签更改为另一个名称,那么它就可以工作了。似乎是 innerHTML 破坏了标签,或者解析器无法解析 IMG 标签。

请指教。 提前致谢!

最佳答案

IE 自动将标签名称大写(因此变成 )所以我使用了 txt.replace(/><\/a>/g, " /></a>").replace(/><\/A>/g, " /></A>")

感谢所有提供帮助的人!

关于javascript - 使用 InnerHTML 解析 IMG 标签 Javascript,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8764669/

相关文章:

javascript - 为什么我无法创建转换 :translate in Angular. js 的字符串?

perl - 如何在Perl 5中定义解析语法?

c++ - ifstream 的 operator>> 来检测行尾?

java - java中字节的数据包解析

html - 关于继承的 CSS 性能

javascript - 如何将两个 jQuery 事件处理程序合并为一个?

javascript - 复制动态元素大小

javascript - 在键盘搜索输入(分页)上显示正确的项目数的问题

javascript - JavaScript 中 childNode 的 ChildNode 的树

javascript - 在 Angular 2 中使用 ElementRef 与 JQuery