我目前正在使用inAppBrowser打开一个外部Web托管应用程序,我使用executeScript并加载了外部js与DOM交互,当我单击“提交”按钮时,是否有办法触发回调? 或无需执行脚本即可访问dom的方法? 我需要做的是在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");
}
});