Javascript .replace()在Firefox中工作
这是我的剧本。它目前可以在Chrome中使用,但不能在Firefox中使用Javascript .replace()在Firefox中工作,javascript,jquery,css,google-chrome,firefox,Javascript,Jquery,Css,Google Chrome,Firefox,这是我的剧本。它目前可以在Chrome中使用,但不能在Firefox中使用 var img = new Image(); img.src = $('.header-image').css('background-image').replace(/url\(|\)$/ig, ""); var bgImgWidth = img.width; var bgImgHeight = img.height; var imageRatio = bgImgHeight / bgImgWidth; var bo
var img = new Image();
img.src = $('.header-image').css('background-image').replace(/url\(|\)$/ig, "");
var bgImgWidth = img.width;
var bgImgHeight = img.height;
var imageRatio = bgImgHeight / bgImgWidth;
var boxWidth = $(window).width();
var imageHeight = imageRatio * boxWidth;
$(img).load(function () {
$('.header-image').css('height', imageHeight);
});
$(window).resize(function() {
var newImageWidth = imageRatio * $(window).width();
$('.header-image').css('height', newImageWidth);
});
我认为它和.replace(/url(|)$/ig,“”)有关,但我不知道如何让它在这两种情况下都工作。知道发生了什么事吗
当我把这些放在混合物里时:
alert( img.src );
console.log($('.header-image').css('background-image'));
第一个返回url,第二个返回url
url(http://example.com/path/to/photo.jpg)
修好了。已将正则表达式清理为:
img.src = $('.header-image').css('background-image').replace(/(^url\()|(\)$|[\"\'])/g, '');
然后将整个函数包装在.load中
var $div = $('.header-image'),
bg = $div.css('background-image');
if (bg) {
var src = bg.replace(/(^url\()|(\)$|[\"\'])/g, ''),
$img = $('<img>').attr('src', src).on('load', function() {
// MY FUNCTION HERE
});
}
var$div=$('.header-image'),
bg=$div.css('background-image');
如果(背景){
var src=bg.replace(/(^url\()|(\)$|[\“\”])/g,,),
$img=$('What does$('.header-image').css('background-image')
返回?url\(\\)$
匹配url(
anywhere或)
在字符串的末尾。这真的是您所期望的吗?是否缺少分号?关于缺少的分号,我从其他人那里复制了这篇文章,所以我不确定。我已经发布了问题中的返回值。第二个警报没有帮助,因为选择器错误。最好使用控制台进行调试而不是警报。此外,问题最可能的原因是,在加载映像之前,映像维度不可用。您应该将这些计算移到加载处理程序中。