我有一个if语句似乎没有像我希望的那样工作。我想知道是否有人能够帮助我。
var image_url = jQuery('#bgImgWrap').css('background'), image;
if (image_url[1]) {
console.log(image_url.length);
// Remove url() or in case of Chrome url("")
image_url = image_url.match(/url\([^)]+\)/)[0];
var imgRegExp = /\(([^)]+)\)/;
image_url = imgRegExp.exec(image_url);
image_url = image_url[1];
image = new Image();
// just in case it is not already loaded
jQuery(image).load(function () {
//Set the background to cover if the image is smaller than the window size
//Set the mobile background to always cover
if (jQuery(window).width() > image.width || jQuery(window).height() > image.height || jQuery(window).width() < 940) {
jQuery("#bgImgWrap").backstretch(image_url);
}
else {
jQuery("#bgImgWrap").css("background-size", "auto");
}
});
image.src = image_url;
我对此代码的问题在于它抓取图像并让我在没有问题的情况下为背景调整大小,但image_url
会返回如下字符串:
rgb(255, 255, 255) url(http://localhost:8000/mysite/images/Our_Services2.jpg) no-repeat scroll 0% 0% / auto padding-box border-box
并且抓取image_url[1]
获取字符串的url
部分。在第一次执行之后,它最终会删除字符串的url
部分,只留下:
rgba(0, 0, 0, 0) none repeat scroll 0% 0% / auto padding-box border-box
所以if语句不起作用,因为它检查是否有image_url[1]
,但它不再有url
部分,这导致我的代码在这里出错:
rgba(0, 0, 0, 0) none repeat scroll 0% 0% / auto padding-box border-box
说:Uncaught TypeErrorL Cannot read property '0' of null
我的问题是,是否有可能通过检查image_url[1]
是否包含url
?如果没有,有人会知道更好的解决问题的原因吗?