代码之家  ›  专栏  ›  技术社区  ›  kishore

如何将html字符串转换为html dom元素?

  •  2
  • kishore  · 技术社区  · 14 年前

    <span style="text-indent: 29px;padding-top:35px;font-size: 16pt;font-family: Arial;color: #FFFFFF;font-weight: bold;position: absolute;text-decoration: none;">89</span>
    <span style="text-indent: 41px;padding-top: 58px;font-size: 8pt;letter-spacing: 1px;font-family: Arial;color: #E5DA95;font-weight: bold;position: absolute;text-decoration: none">89</span>
    <span style="text-indent: 55px;padding-top: 58px;font-size: 8pt;letter-spacing: 1px;font-family: Arial;color: #E5DA95;font-weight: bold;position: absolute;text-decoration: none">-</span>
    <span style="text-indent: 59px;padding-top: 58px;font-size: 8pt;letter-spacing: 1px;font-family: Arial;color: #E5DA95;font-weight: bold;position: absolute;text-decoration: none">92</span>
    <img src="https://www.autocheck.com/members/img/freeLinkScore/scoreBanner4.gif" height="75" width="75" border="0">
    

    我使用语句div.innerHTML=response;

    响应将显示为文本而不是HTML。有人能告诉我如何在div中以html格式显示响应吗。

    4 回复  |  直到 14 年前
        1
  •  1
  •   Brock Adams    14 年前

    否则,在将响应设置为内容之前,必须对其进行HTML解码。 我找了一个轻量级的解码器,却找不到比简单正则表达式更健壮的解码器。

    因此,这可能会满足您的即时需求,只是要注意它可能会破坏某些内容组合(在这种情况下似乎不太可能)。

    response = response.replace (/&lt;/ig, '<').replace (/&gt;/ig, '>');
    

    .
    PS:确保这个Web服务器不能向您提供恶意html,比如 <script>

        2
  •  1
  •   Nathan Ridley    14 年前

    设置 innerHTML 元素的属性不会导致对该内容进行编码;它的目的是专门用于获取和设置 HTML格式 元素内部。

    如果响应是html编码的,请仔细检查从服务器获得的实际响应文本,并确保它没有在服务器端编码。您看到的响应可能只是文本的HTML呈现版本,这将解释您如何看到三角括号而不是实际的HTML编码文本。

        3
  •  0
  •   Ben    14 年前

    将div.innerHTML设置为

    <span style="text-indent: 29px;padding-top:35px;font-size: 16pt;font-family: Arial;color: #FFFFFF;font-weight: bold;position: absolute;text-decoration: none;">89</span> 
    

    &quot; 代替引号。要对其进行编码,您应该能够使用Server.HtmlEncode方法。

        4
  •  0
  •   Christophe    14 年前

    div.innerHTML = response;
    var htmlstring=div.innerText||div.textContent;
    div.innerHTML=htmlstring;