【问题标题】:Do you need to escape any characters when utilizing jQuery.css() method?使用 jQuery.css() 方法时是否需要转义任何字符?
【发布时间】:2015-03-29 14:59:33
【问题描述】:

我有一种情况,动态 CSS 是通过另一个属性(所以不是由用户)传入的,我想知道在使用此方法时是否需要进行任何转义?

我认为可能需要转义引号,因为通过 css 设置背景样式可能会这样结束:

<div style="background-image: url("my-image.png");">

由于样式声明中的双引号已经在双引号内,因此不需要转义它们吗?

虽然我测试了它,但它似乎不会引起问题。

这需要还是不需要?

【问题讨论】:

  • my-image.png 周围不需要这些引号,或者您可以只使用单引号。
  • 如果你在你的 HTML 中“打字”,你会写 &lt;div style="background-image: url(&amp;quot;my-image.png&amp;quot;);"&gt;&lt;/div&gt;。但是,如果您正在操作样式属性 va JavaScript,则不必进行 html 编码。

标签: javascript jquery html css escaping


【解决方案1】:

我测试了它,但它似乎没有引起问题。

导致问题,如果你按照你展示的方式设置它:

<div style="background-image: url("my-image.png");">

只是因为您在双引号中指定了样式,并且样式被解释为在url( 之后结束。你可以用单引号括起来,然后就不用了。

通过 jQuery 设置不会导致任何问题:

$("div").css({"background-image":'url("my-image.png");'})

因为第一个 sn-p 就是它在用户看来的样子; javascript 无法设置属性,以免弄乱整个 html;无论如何它都会自动转义。

简而言之,如果您告诉 javascript 只使用一个属性,它就会这样做并且不会触及元素的任何其他部分。如果你没有搞砸引号,javascript 就不会这样做:)

【讨论】:

  • 好的,很高兴知道。是的,我自己不会它,只是不确定它是否被自动转义。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2010-10-21
  • 2010-11-27
  • 2013-03-24
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多