【问题标题】:Cannot re-display Swiffy movie无法重新显示 Swiffy 电影
【发布时间】:2015-06-29 21:27:06
【问题描述】:

我们的网络应用程序(在线广告活动控制台)支持使用 Swiffy 从 Flash 转换的广告标签。在我们的 UI 中,我们有一个页面,您可以在其中预览和编辑广告,并且一些更改会导致预览(一个 IFRAME)重新加载更新的预览(例如,如果我们更改作为 clickTag 值传递给广告的 URL) .

我们第一次显示 Swiffy 预览时,一切正常;但在第二次及后续尝试中,我们在浏览器 (Chrome 43.0.2357.130) 控制台中看到以下内容:

Uncaught TypeError: Cannot redefine property: __swiffy_override
  (anonymous function) @ runtime.js:163
  (anonymous function) @ runtime.js:799

看来这里发生的事情是 Swiffy 正在使用Object.defineProperty(Date,"__swiffy_override",{value:Fh})。根据MDN,除非你在第三个参数中指定{configurable: true},否则你会得到这个异常。

我们目前使用的是来自 Google CDN (https://www.gstatic.com/swiffy/v7.2.0/runtime.js) 的 runtime.js 版本。当然,我们可以将其复制到我们自己的 CDN 中并编辑 javascript,但这存在明显的可维护性问题。

这是否应该作为错误报告给 Google? (如果是这样,如何做到这一点?)

这是其他人遇到的问题并有解决方法吗?

【问题讨论】:

    标签: google-swiffy


    【解决方案1】:

    听起来您在更新预览时实际上并没有重新加载 IFRAME 的内容,否则应该不会发生错误,此时不会定义 Date.__swiffy_override

    如果您无法完全重新加载 IFRAME 的内容,是否可以只加载一次 Swiffy 运行时,并为每次预览更新创建一个新的 swiffy.Stage?

    请注意,我没有对此进行测试,它在某些情况下可能不起作用(如果有的话)。例如,我会特别警惕使用不同的 ActionScript 版本创建 swiffy.Stages。安全的赌注总是每次都完全重新加载 IFRAME。

    【讨论】:

    • 是的,这就是我最终得到的解决方案。
    猜你喜欢
    • 1970-01-01
    • 2015-12-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-03-16
    • 1970-01-01
    • 2011-06-23
    • 1970-01-01
    相关资源
    最近更新 更多