Javascript .replace()在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

这是我的剧本。它目前可以在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 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或
在字符串的末尾。这真的是您所期望的吗?是否缺少分号?关于缺少的分号,我从其他人那里复制了这篇文章,所以我不确定。我已经发布了问题中的返回值。第二个警报没有帮助,因为选择器错误。最好使用控制台进行调试而不是警报。此外,问题最可能的原因是,在加载映像之前,映像维度不可用。您应该将这些计算移到加载处理程序中。