Cordova - обратный вызов ExecuteScript при нажатии кнопки «Отправить» - PullRequest
0 голосов
/ 07 июня 2019

В настоящее время я работаю с inAppBrowser, чтобы открыть внешнее веб-приложение, я использовал executeScript и загрузил внешние js для взаимодействия с DOM, есть ли способ вызвать обратный вызов, когда я нажимаю кнопку отправки? или способ получить доступ к DOM без executeScript? Что мне нужно сделать, так это запустить обратный вызов по событию click, потому что мне нужно передать localStorage перед сменой домена.

index.js

onDeviceReady: function() {
  if (navigator.connection.type == Connection.NONE) { 
    navigator.notification.alert('An internet connection is required to continue');
  } else {
    var options = "location=no,hidden=no";
    var ref = cordova.InAppBrowser.open('extSite', '_blank', options);
    ref.addEventListener('loadstop', function(event){
      console.log("il link e' " +event.url);
      if(event.url.startsWith("extSite")){ 
      ref.executeScript({
        file:'extfile'
      });
    }
  });
 }
}

extfile.js

document.getElementById('LoginButton').addEventListener('click', function(){
    if (document.getElementsByName("RememberLogin")[0].checked==true){
        var usr = document.getElementsByName('Username')[0].value;
        var psw = document.getElementsByName('Password')[0].value;
         if ((usr!="") && (psw!="")){
            localStorage.setItem('Username', usr);
            localStorage.setItem('Password', psw);
            alert('data saved');
         }
    }
    else {
        localStorage.removeItem("Username");
        localStorage.removeItem("Password");
    }
});
...