克隆与括号的背景图象在文件名

时间:2009-07-21 23:23:26

标签: jquery internet-explorer-8 background inline

我有一个背景图片,文件名中有一个括号:

<DIV style="BACKGROUND: url('http://site.com/image(8).png');"></DIV>

这很正常,并且没有混淆,因为文件名周围有引号。

然而,在IE的开发者工具中,我看到浏览器出于某种原因剥离了引号。

<DIV style="BACKGROUND: url(http://site.com/image(8).png);"></DIV>

不过,它确实有效,所以不是什么大不了的事。 当我尝试使用jquery的克隆函数时出现问题。

显然,clone()之后的输出不能识别上面的图像url在IE8中有效并将其剥离(其他浏览器,包括IE7,都可以)。所以我最终得到了这个:

<DIV></DIV>

任何人都知道如何解决这个问题?也就是说,在IE8的url中使用括号克隆背景图像。

感谢。

此外,作为附录,我必须使用内联样式处理相关元素,因此请不要建议使用单独的样式表。

Ad2:在转义时,浏览器渲染后转义的实体变为非转义状态。在页面加载后再次进行克隆,并且要克隆的选定对象中包含未转义的字符。

4 个答案:

答案 0 :(得分:7)

不要使用HTML实体转义括号(浏览器将属性中的实体视为等效的文字字符是正确的),使用URL实体转义它们:

(=%28
)=%29

答案 1 :(得分:4)

你错过了一个引用字符:“

<DIV style="BACKGROUND: url('http://site.com/image(8).png');></DIV>

应该是

<DIV style="BACKGROUND: url('http://site.com/image(8).png');"></DIV>

你可以在这里看到,甚至stackoverflow代码格式化程序格式化代码不同

答案 2 :(得分:0)

我想,逃避麻痹会起作用。 TBH,这将是我在URL上使用它的方式。

答案 3 :(得分:0)

&#40;左括号'('

&#41;右括号')'

也许这会解决问题?