Angular 8 щелчок работает как javascript функция загрузки - PullRequest
0 голосов
/ 20 февраля 2020

Мое angular приложение загружается в портлет iframe.

На родительской странице JSP у меня есть форма и отправка невидимой кнопки, которая откроет всплывающее окно из внешнего приложения.

Я пытаюсь нажать эту кнопку в компоненте angular.

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

Html стр.

<html>
...
...
<!-- Left nav Menu-->
<div>
<ul>    <li>....</li>
...
<li>
   <a herf="javascript:void(0);" (click)="navigateToParentJspMethod('true')">Contact Us</a>
</li>
 ...
</html>

Файл компонента ts

navigateToParentJspMethod(popupFlg: string){
console.log(popupFlg+' Test');
if(popupFlg==='true'){
    $("#parentPageFrmSubmit", window.parent.document).click();

}

parent Jsp page

<script>
function openContactUsPopUpFromExternalApp(){
.....
document.getElementById("parentPageFrm").submit();
}
</script>
<form name="parentPageFrm" id="parentPageFrm" action="parentPageFrmSubmitAction" method="post" target="openContactUsWin">
<input type="hidden".....>
......
<button type="submit" id="parentPageFrmSubmit" style="display:none" onclick="openContactUsPopUpFromExternalApp()">Submit</button>
</form>

Спасибо, Рама

1 Ответ

0 голосов
/ 24 февраля 2020

Наконец, я могу решить эту проблему.

Я удалил Jquery, и я использовал parent.postmessage из angular в parent jsp и открыл всплывающее окно из моего родителя jsp.

Html стр.

<html>
...
...
<!-- Left nav Menu-->
<div>
<ul>    <li>....</li>
...
<li>
   <a herf="#" (click)="navigateToParentJspMethod('true')">Contact Us</a>
</li>
 ...
</html>

Компонент ts file

navigateToParentJspMethod(popupFlg: string){
   console.log(popupFlg+' Test');
   var data="functionality=contactUsPopUp";
   parent.postMessage(data,*);
}

Родитель Jsp.

window.addEventListener("message", handleMessage, false);

function handleMessage(e){
  var formData= e.data;
  var formValue= formData.split(";");
  var functionality=((formValue[0].substr((formValue[0].indexOf("="))).slice(1);
  if(functionality=="contactUsPopUp"){
     document.getElementById("popupInvisibleButton").click();
  }
}

Это сделал работать на меня. :)

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