内容流自动启动在 Firefox 中不起作用

发布于 2024-12-02 11:36:21 字数 262 浏览 0 评论 0原文

我创建了一个带有内容流的测试轮播

http://www.invest-champagne-ardenne.fr /test-carousel

一切都很好,除了自动启动在 Firefox 中不起作用。

我已经寻找解决方案几个小时了,但我找不到它不起作用的原因。

你有什么想法吗?谢谢。

I have created a test carousel with contentflow

http://www.invest-champagne-ardenne.fr/test-carousel

Everything is fine except that the autostart does not work in firefox.

I have looked a solution for hours but i can't find the reason why it does not work.

Do you have any idea ? Thank you.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

﹏雨一样淡蓝的深情 2024-12-09 11:36:21

Web 控制台显示以下错误:

this.AddOns[B] 未定义@ http://www.invest-champagne-ardenne.fr/design/cadevinstitutionnel/javascript/contentflow.js:37

这来自方法 setAddOnConf 显然是在加载附加组件之前调用的。如果您查看加载项的加载方式:

addScript : function(B) {
  if (this.Browser.IE || this.Browser.WebKit || this.Browser.Konqueror) {
    document.write('<script type="text/javascript" src="' + B
                     + '"><\/script>')
  } else {
    var A = document.createElement("script");
    A.src = B;
    A.setAttribute("type", "text/javascript");
    document.getElementsByTagName("head")[0].appendChild(A)
  }
},

这里我们在 contentflow.js 中存在一个错误 - 这假设动态添加的脚本将在除 Internet Explorer 和基于 WebKit 之外的所有浏览器中同步加载浏览器。从 Firefox 4 开始,Firefox 不再这样做(请参阅 bug 591981 了解更多信息)更多细节)。最简单的修复:删除 if 语句并为所有浏览器执行 document.write() 。另一种选择是将 async="false" 属性添加到动态插入的脚本中,但我不确定浏览器支持矩阵在这里是什么样子。

Web Console shows the following error:

this.AddOns[B] is undefined @ http://www.invest-champagne-ardenne.fr/design/cadevinstitutionnel/javascript/contentflow.js:37

This is coming from method setAddOnConf which is apparently being called before the add-ons loaded. If you look at how the add-ons are being loaded:

addScript : function(B) {
  if (this.Browser.IE || this.Browser.WebKit || this.Browser.Konqueror) {
    document.write('<script type="text/javascript" src="' + B
                     + '"><\/script>')
  } else {
    var A = document.createElement("script");
    A.src = B;
    A.setAttribute("type", "text/javascript");
    document.getElementsByTagName("head")[0].appendChild(A)
  }
},

And here we have a bug in contentflow.js - this assumes that dynamically added scripts will load synchronously in all browsers but Internet Explorer and WebKit-based browsers. That's something that Firefox is no longer doing starting with Firefox 4 (see bug 591981 for more details). Simplest fix: remove the if statement and do document.write() for all browsers. The other option would be adding async="false" attribute to the dynamically inserted script, I'm not sure however what the browser support matrix looks like here.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文