Недавно я переписал JS-приложение плана с помощью Angular 6.
Старая штука работает так:
файл js внутри iframe, который вызывает функцию "parent.update_track ()", определенную в файле main.js в контейнере iframe.
это не работает в Angular при запуске приложения в производственной среде, ответ будет: TypeError: parent.update_track не является функцией.
Итак, как я могу вызвать эту функцию update_track (), объявленную в файле ts в компоненте из внешнего файла js, содержащегося в iFrame?
конечно это должен быть ответ https://stackoverflow.com/questions/35276291/how-to-expose-a ngular-2-methods-pub licly



![Безумие обратных вызовов в javascript [JS]](https://i.imgur.com/WsjO6zJb.png)


Вы можете использовать функцию отправки сообщения.
Итак, в вашем iframe вы можете просто вызвать открывающее окно (родительское) для публикации сообщения, для получения дополнительной информации вы можете использовать эта ссылка
Затем в приложении angular (родительском) вы можете использовать следующий слушатель:
@HostListener('window:message',['$event'])
onMessage(e) {
if (e.origin! = "http://localhost:4200") {
return false;
}
alert('here i am');
}
}
Примечание: вам следует изменить тест e.origin, чтобы он поддерживал как локальную среду, так и рабочую среду.
вы можете разместить свой код?