Javascript - 使用innerHTML输出字符串*WITHOUT*HTML编码的特殊字符?

Cla*_*ire 9 html javascript xhtml

当通过innerHTML()函数输出内容时,JavaScript似乎会将某些特殊字符自动转换为HTML实体.这是一个问题,因为我需要能够输出<和>而不转换为gt; 和lt;

可以阻止,撤消或转义此自动转换吗?到目前为止,无论我做什么,<和>总是自动编码为HTML实体.

示例代码:

function DisplayQueries() {
    var IDs = ['AllOpenedINC','AllOpenedCRQ','AllClosedINC','AllClosedCRQ','SameDayINC','SameDayCRQ','NotSameDayINC','NotSameDayCRQ',
        'StillOpenINC','StillOpenCRQ','OpenOldINC','OpenOldCRQ','OtherQueuesINC','OtherQueuesCRQ']

    for (var i = 0; i < IDs.length; i++) {
        if (eval(IDs[i]))
            document.getElementById(IDs[i]).innerHTML = eval(IDs[i]);
    }
}
Run Code Online (Sandbox Code Playgroud)

示例查询变量:

AllOpenedINC = "('Company*+' = \"test\" OR 'Summary*' = \"%test%\") AND ('Submit Date' >= \"" + theDate +
    " 12:00:00 AM\" AND 'Submit Date' <= \"" + theDate + " 11:59:59 PM\")" + nameINC;
Run Code Online (Sandbox Code Playgroud)

Cla*_*ire 0

我知道发生了什么事。没有简单的方法可以阻止innerHTML将特殊字符转换为HTML实体,但是由于将DIV的内容复制到剪贴板时问题就出现了(使用仅限IE的JS,它可以工作,因为这是在政府环境中,每个人都有使用 IE),我只是使用了 Replace() 函数将 HTML 实体重新转换回 < 和 >。