iframe перезагружается снова, если сфокусирован на Ionic 3 - PullRequest
0 голосов
/ 13 февраля 2019

Я работаю над приложением Ionic 3 .Внутри div я загружаю внешний URL в iframe , и он загружается отлично.Но это создает проблему, когда фокусируется. iframe перезагружается каждый раз, когда фокусируется.

Scenario-01 : на странице, где я загрузил iframe, есть другие элементы управления вне iframeнапример, текстовое поле для ввода некоторых данных.Итак, когда я нажимаю на текстовое поле, появляется клавиатура, но в то же время iframe перезагружается снова.

Сценарий-02 : у меня есть одна выдвижная панель меню слева в приложении.Когда я открываю выдвижную панель, чтобы выбрать другую страницу, я снова вижу, как перезагружается iframe существующей страницы.

Сценарий-03 : внешний URL-адрес, который я загрузил в iframe, имеетнекоторые элементы управления вводом.Итак, я хочу ввести что-то в эти поля ввода, клавиатура появляется, но в то же время перезагружается iframe, и я не могу предоставить никаких данных в эти поля ввода.

Исходя из моего предположения, iframe вызывает проблемы, когдаэто фокусируется.Итак, я попытался захватить событие blur этого iframe и попытаться остановить распространение события.

<iframe width="100%" height="100%" [src]="url| safeHtml:'resourceUrl'" (ionBlur)="checkBlur($event)" (ionFocus)="checkFocus($event)"></iframe> 

Но оба ionFocus и ionBlur события не инициировались.

На данный момент, когда я пытался использовать приложение Android , все сценарии вызывают перезагрузку iframe.Поскольку клавиатура не отображается в браузере, при попытке использования Browser только Scenario-02 вызывает перезагрузку iframe.

Iframe должен загружаться только в первый раз.Затем пользователь может выполнять любые операции внутри или внутри фрейма, но фрейм не должен загружаться снова.

Как остановить перезагрузку iframe, если он фокусируется с помощью клавиатуры или выдвижного ящика или чего-либо еще?

1 Ответ

0 голосов
/ 13 февраля 2019

Я разобрался с решением.Проблема была с safeHtml: 'resourceUrl' pipe.Он очищал каждый раз, когда фокус находился в фокусе и готовил новый ResourceURL .В результате iframe перезагружается каждый раз.

Итак, я предварительно очистил URL в ts и установил его в переменную.В результате iframe больше не перезагружается.Я использовал DomSanitizer для очистки URL ресурса.

url: any;

constructor(private domSanitizer: DomSanitizer) {
    this.url= this.getSantizedURL();
}

getSantizedURL() {
   this.domSanitizer.bypassSecurityTrustResourceUrl(mySampleURL);
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...