У меня есть вариант использования, когда я подписываюсь / слушаю топи c на каждом iframe
, теперь иногда этот iframe
будет удаляться и заменяться новым iframe
.
Также , У меня нет чистого способа отписаться от первоначального подписчика на удаленной iframe
.
В Chrome, когда событие публикуется на удаленной подписке iframe
, оно попадает в try / catch
, однако в IE10 он сразу выдает ошибку «Невозможно выполнить на освобожденном скрипте»
iframe 1 (который будет удален из DOM)
subscribe("event-topic", (event) {
try { ... }
catch(ex) { ... }
})
iframe 2
subscribe("event-topic", (event) {
try { ... }
catch(ex) { ... }
})
Основное приложение
publish("event-topic");
Теперь, например, первый iframe
удален и добавляется 2-й iframe
. Главное приложение начинает публиковать sh событие. В результате этого publi sh вызываются обратные вызовы обоих подписчиков. Теперь, поскольку 1-го iframe
больше нет, Chrome отправляет его в блок try/catch
в обратном вызове подписки, а IE выдает ошибку.
Я пытался добавить механизм отказа от подписки при удалении iframe
, но это привело к появлению большого количества нежелательного кода, которого я бы хотел избежать как можно больше.
Кто-нибудь решил это проблема или есть обходной путь, чтобы заставить IE вести себя так же, как Chrome? Как полифилл?