簡體   English   中英

使用InnerHTML解析IMG標簽Javascript

[英]Parsing IMG tags Javascript using InnerHTML

這是兩難選擇:

我正在做一個JavaScript效果。 為此,我使用.innerHTML拉節點及其子節點(包括圖像)。 然后嘗試通過DOM解析它。 當到達圖像標簽時,將引發解析錯誤。 當我警告innerHTML時,我看到它正在剝離IMG標簽的結尾。

我不知道問題出在解析器還是innerHTML。 如何獲取該節點,獲取內部內容並將其解析為XML?

看起來這里發生了類似的事情: innerHTML從圖像標記中刪除了斜杠

(這是我在互聯網上搜索了將近兩天后發現的唯一涉及此問題的頁面。)

這是我正在使用的解析代碼:

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和其他瀏覽器的標准)來做到這一點? 我應該使用什么啞劇?

這是我嘗試解析的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>")

感謝所有的幫助!

我假設您通過使用innerHTML來獲取“ txt”變量? 我在各種瀏覽器中進行了測試,它確實去除了結尾標記。 也許,在將其發送到loadXMLString函數之前,您可以使用正則表達式將它們添加回去嗎?

var re = new RegExp("(<img\b[^>]*)>", "g");
txt = txt.replace(re, "$1 />");

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM