2015-06-29 4 views
0

Наш webapp (консоль рекламной кампании онлайн) поддерживает теги объявлений, которые преобразуются из флеш-памяти с использованием Swiffy. В нашем пользовательском интерфейсе у нас есть страница, на которой вы можете просмотреть и отредактировать объявление, а некоторые изменения заставят предварительный просмотр (IFRAME) перезагружаться с обновленным предварительным просмотром (например, если мы изменим URL-адрес, переданный в качестве значения clickTag для объявления) ,Невозможно повторно отобразить Swiffy movie

В первый раз, когда мы показываем предварительный просмотр 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}, вы получите это исключение.

В настоящее время мы используем версию runtime.js из CDN от Google (https://www.gstatic.com/swiffy/v7.2.0/runtime.js). Разумеется, мы могли бы скопировать это в наш собственный CDN и отредактировать javascript, но это имеет очевидные проблемы с ремонтопригодностью.

Это что-то, о чем следует сообщать в Google в качестве ошибки? (Если да, то как это сделать?)

Это проблема, с которой сталкиваются другие люди, и у них есть обходы?

ответ

1

Похоже, что вы не перезагружаете содержимое IFRAME при обновлении предварительного просмотра, в противном случае ошибка не должна возникать, Date.__swiffy_override не будет определяться в этой точке.

Если вы не можете полностью перезагрузить содержимое IFRAME, можете ли вы загрузить Swiffy runtime только один раз и создать новый swiffy.Stage для каждого обновления предварительного просмотра?

Примечание. Я не проверял это, и он может не работать при некоторых обстоятельствах (если вообще). Я бы особенно опасался создания swiffy.Stages с различными версиями ActionScript, например. Безопасная ставка всегда заключалась бы в полной перезагрузке IFRAME каждый раз.

+0

Yup, это решение, в конечном итоге я закончил. – dcrosta

Смежные вопросы