jQuery的。如果最后一个字符是`)`,如何删除最后一个字符。为什么不同的浏览器不同地显示base64代码

时间:2015-02-12 07:00:57

标签: jquery

以下是示例https://jsfiddle.net/ry2jaxdu/7/

使用Firefox或IE打开,请参阅以CIrKDQUAADs=")结尾。有")

但如果使用Chrome,Opera或Safari打开,请参阅以CIrKDQUAADs=)结尾。只有),没有"

我需要删除")

使用的代码如mod_val = mod_val.replace('")', '');

至于Chrome,Opera和Safari代码不同,还添加了mod_val = mod_val.replace(')', '');

但有可能base64代码的剩余部分包含)

所以问题是如果最后一个字符是)

,如何删除最后一个字符

另一个不那么重要的问题:为什么上面提到的浏览器存在差异?

更新...同时写了问题回答mod_val = mod_val.replace(/\)$/, '');

但仍然是为什么会出现这种差异的第二个问题......

3 个答案:

答案 0 :(得分:2)

这就是如何通过不同的浏览器解析背景图像CSS规则...有些人会以一种方式解析它,其他人会用另一种方式解析它......

background-image:url('logo.jpg');

请注意网址中的单引号,但使用javascript会返回解析后的版本...

//In IE
background-image='url("logo.jpg")'
//In Chrome
background-image='url(logo.jpg)'

答案 1 :(得分:1)

你可以剥离url(并跟踪),如下所示:

base64_img.replace(/^url\("?|"?\)$/g, '')

答案 2 :(得分:1)

浏览器的不同之处并非完全基于字符及其base64。这是浏览器处理url的{​​{1}}参数的方式。

例如:
Chrome会移除机箱并选择参数的内容,并以自己的方式将其放在没有任何引号的情况下 Firefox选择内容并始终用双引号background-image