0

我们的 webapp(在线广告活动控制台)支持使用 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?(如果是这样,如何做到这一点?)

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

4

1 回答 1

1

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

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

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

于 2015-07-01T12:29:27.657 回答