Angular 6 - вызвать функцию Angular из внешнего файла js - PullRequest
0 голосов
/ 30 августа 2018

Недавно я переписываю приложение плана JS с Angular 6.

Старые вещи работают так:

файл js внутри iframe, вызывающий функцию parent.update_track (), определенную в файле main.js в контейнер iframe.

это не работает в Angular, когда приложение запускается в рабочей среде, ответ: TypeError: parent.update_track не является функцией.

так как я могу вызвать эту функцию "update_track ()", объявленную в ts-файле компонента из внешнего js-файла, содержащегося в iFrame?

1 Ответ

0 голосов
/ 30 августа 2018

Вы можете использовать функцию отправки сообщений.

Таким образом, в вашем iframe вы можете просто вызвать открывающее окно (родитель), чтобы опубликовать сообщение, для получения дополнительной информации вы можете использовать эту ссылку

Тогда в угловом приложении (родительском) вы можете использовать следующий слушатель:

@HostListener('window:message',['$event'])
onMessage(e) {
  if (e.origin!="http://localhost:4200") {
     return false;
  }

  alert('here i am');
}

}

Примечание: вы должны изменить тест e.origin для поддержки как локальной среды, так и рабочей.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...