我们的网络广告(在线广告系列控制台)支持使用Swiffy从Flash转换的广告代码。在我们的用户界面中,我们有一个页面,您可以在其中预览和编辑广告,一些更改会导致预览(IFRAME)重新加载更新的预览(例如,如果我们将作为clickTag值传递的网址更改为广告)
我们第一次展示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})
。根据{{3}},除非您在第三个参数中指定{configurable: true}
,否则您将获得此异常。
我们目前正在使用Google的CDN(MDN)中的runtime.js版本。当然,我们可以将其复制到我们自己的CDN中并编辑javascript,但这有明显的可维护性问题。
这是否应该作为错误报告给Google? (如果是这样,那怎么做?)
这是其他人遇到的问题,并且有解决办法吗?
答案 0 :(得分:1)
听起来您在更新预览时实际上并没有重新加载IFRAME的内容,否则不会发生错误,此时不会定义Date.__swiffy_override
。
如果您无法完全重新加载IFRAME的内容,您是否只能加载Swiffy运行时一次,并为每次预览更新创建一个新的swiffy.Stage?
注意,我没有对此进行过测试,在某些情况下可能无效(如果有的话)。我特别担心创建具有不同ActionScript版本的swiffy.Stages。安全的赌注总是每次都完全重新加载IFRAME。