【问题标题】:Chrome: background-images not rendered after refreshing page + javascript redirectChrome:刷新页面+ javascript重定向后未呈现背景图像
【发布时间】:2012-08-10 15:02:48
【问题描述】:

我正在开发一个通过 ajax 加载页面的网站。我使用 #!/url 语法跟踪当前位置。如果在第一次加载页面时,该页面在 url 的哈希部分中已经有一个 url,我使用 javascript 重定向到该页面:

document.location = initialPage;

我的内容由一堆具有 position:absolute 的 div 组成,它们以正确的顺序堆叠以便显示。我的身体背景是一组使用 jQuery 幻灯片定期切换的图像。 这适用于所有浏览器,除了(这是问题)在 Chrome 中我有时会丢失我的内容 div 的背景图像。最可靠的重现方式是:

请注意,如果您现在再次使用 Ctrl-F5 刷新,页面将再次看起来正常。在任何一种情况下,都没有在页面加载时运行的重要 javascript。背景滚动已初始化,但在没有背景的页面(项目页面)上也存在问题。 我倾向于这是 Chrome 中的一个错误,但我需要这个工作。任何人都可以提出一些建议吗?

门诺

【问题讨论】:

  • 可能和this Chrome bug有关。
  • 看起来确实很相似。如果他们尽快修复它,我不需要做任何事情。
  • 在开发版的 Chrome 中不会出现该问题。所以这是一个 Chrome 错误。我想这意味着我的网站太棒了 Chrome 无法处理它。

标签: javascript css google-chrome


【解决方案1】:

尝试在 CSS 上使用绝对路径作为背景。也许它可以帮助确定问题。

您也可以尝试在页面加载后将背景应用于块

$(document).ready{
  $("#content").css("background","url(../Images/Css/bg_content.png)");
}

也许这会有用。当我请求像http://epsilon.tabeoka.be/fr/contacts 这样的示例页面时。浏览器做了 41-42 个请求并上传了所有图像。当我按照您的方式进行时(按下 Ctrl-F5)- 浏览器仅完成 31-33 请求。他不上传图片作为背景。看起来他认为他们已经上传了。

所以当我禁用 chrome 上的缓存时 - 错误消失了。

也许您应该尝试将所有背景属性添加到您的页面中,而不是 CSS,并添加随机值,如下所示:

<style>
  #content {
    background:url(../Images/Css/bg_content.png?rnd=123124);
  }
</style>

【讨论】:

  • 我今天过得很忙碌。只是让你知道我明天会尝试使用 javascript 解决方法,如果它能让我到任何地方,请告诉你。谢谢。
  • epsilon.tabeoka.be 现在已更新,可在 chrome 中使用。我用 rgba 背景替换了一些背景,并在无法被背景颜色替换的背景中添加了一个随机查询字符串。胜利!
【解决方案2】:

如果它确实是 Chrome 错误(请参阅我对您的问题的评论),您可以尝试用 rgba 背景颜色替换您的背景图像。它更好,您可以为旧浏览器添加后备。

background-color: rgb(16,34,68);
background-color: rgba(16,34,68,.75);

【讨论】:

  • 这对于彩色背景来说是一个很好的解决方案。不幸的是,徽标和滚动按钮也是 css 背景并且丢失了。无论如何,我会尝试使用背景颜色,以防我需要一个 javascript 解决方法来解决其余的问题。谢谢。
  • 感谢您的帮助。我用 epsilon.tabeoka.be 上的背景颜色替换了我可以使用的背景。我接受了LLalive的回答,因为它实际上是解决背景图片无法加载的问题。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2014-04-07
  • 2020-08-31
  • 2018-07-26
  • 2020-12-31
  • 1970-01-01
  • 2018-03-09
  • 2011-03-05
相关资源
最近更新 更多