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

未呈现HTML实体

  •  1
  • Pablo  · 技术社区  · 15 年前

    如果我只是把XUL文件

    <label value="&#176;C"/> 
    

    它工作得很好。但是,我需要帮助 &#176; 这个标签元素的值,它不显示度数符号,而是显示文字值。

    UPD 抱歉,伙计们,我刚刚错过了几个词-它在javascript中不起作用-如果我分配 mylablel.value = degree + "&#176;" -这将显示文字值。

    只有在xul文件中手动放置上面的内容时,它才会显示度数符号。

    3 回复  |  直到 15 年前
        1
  •  3
  •   Marcel Korpel    15 年前

    当使用JavaScript转义时会发生什么,比如 "\u00B0C" ,而不是 "&#176;C" ?

    或在使用时 mylabel.innerHTML 而不是 mylabel.value ?(根据 MDC ,这应该是可能的。)

    编辑: 您可以使用 Unicode Code Converter .

        2
  •  3
  •   Pointy    15 年前

    这对我来说是有意义的。当在XML标记内的属性值中表示实体时,XML解析器将插入实体引用,然后将标签值设置为结果。然而,在JavaScript中,没有XML解析器可以为您完成这项工作,事实上,如果有的话,生活将会非常糟糕!注意,当您设置 <input type='text'> 元素,您不必担心必须转义XML实体(甚至是尖括号)。但是,你 在XML标记中设置“value”属性时,必须担心XML实体。

    另一种思考方法是:XML实体表示法是XML语法,而不是JavaScript语法。在JavaScript中,可以使用16位Unicode转义序列生成特殊字符,这看起来像 \u 后跟一个四位十六进制常量。正如MarcelKorpel的回答中所指出的,如果您知道XML实体生成了什么Unicode值,那么您应该能够直接从JavaScript中使用它。在这种情况下,您可以使用 "\u00B0" .

        3
  •  1
  •   Kronass    15 年前

    这样它就不工作了,你能把它转换成这样吗

    <label>&#176;C</label>