var HK_Oauth = function () { var _this = this; this.site = "https://hkservices.hk.edu.tw" this.oauthMessage = { token: "", time: "" }; window.addEventListener('message', function (e) { if (e.origin == _this.site) { _this.getOauthMessage(e); } }, false); } HK_Oauth.prototype.activeOauth = function () { var _this = this; return new Promise(function (resolve, reject) { var page = window.open(_this.site + '/Oauth/Login', 'newwindow', 'height=600,width=400,top=0,left=0,toolbar=no,menubar=no,scrollbars=no, resizable=no,location=no, status=no'); var oldTime = _this.oauthMessage.time; var watch = setInterval(() => { if (page.closed == true) { if (oldTime != _this.oauthMessage.time) { resolve(_this.oauthMessage); } else { reject("授權失敗"); } clearInterval(watch); } }, 500); }); }; HK_Oauth.prototype.getOauthMessage = function (e) { var message = this.oauthMessage; message.token = e.data; message.time = new Date(); };