имя пользователя и пароль не передаются на ту же страницу - PullRequest
0 голосов
/ 12 февраля 2019

HTML-страница входа в систему должна содержать действительное имя пользователя и пароль, подтвердить это на страницах Google, а затем предоставить доступ к странице с данными.Если введено неверное имя пользователя и пароль, то ту же вкладку следует обновить другой HTML-страницей с сообщением «Неверное имя пользователя или пароль».Код работает нормально, когда я определяю целевой элемент как «_blank», но выдает ошибку «script.google.com не удается подключиться», когда для целевого элемента установлено значение «_self»

login.html

     <script>
        google.script.run.withFailureHandler(failed).
    withSuccessHandler(dropdown).getDropdown("Offices", "A", 3, "list");

    function dropdown(dropdown){
       var datalist = document.getElementsByClassName(dropdown[0]);
           var len = dropdown.length;
           var options = ""; 
           for (i = 1; i < len; i++) {
               options = options + "<option value='" + dropdown[i] + "'>" + 
    dropdown[i] + "</option>";
             }
             for (n in datalist) {
                 datalist[n].innerHTML = options;
             } 
     }


function failed(e){
alert("Error:", +e);
}

</script>
      <form 
         action= "https://script.google.com/a/macros/caplineservices.com/s/
         AKfycbw1BhOakZMzoGnErWw2uBuZzDawn8ThQjEQpBm_nSd6Eyb3NITF/exec"
         method="POST" target="_self" 
         align="right" id="loginForm" style="transform:translateX(-5%)" >

    <h4 style="font-size:40px;
 font-family: 'Trebuchet MS', Arial, Helvetica, sans-serif; 
color:#4fbcef">Login</h4>

   <p> Select Office: <select class="list" name="officeName" 
style="padding: 3px;width:200px;color:#ffffff;" ></select></p>

   <p style=""> Username: <input type="text" name="userName" 
placeholder="Username" style="padding: 3px;width:200px;">
    </p>
    <p> Password: <input type="password" name="password" 
placeholder="Password" style="padding:3px;width:200px;"> 
        </p>
    <input type="submit" value="Login" align="center" class="submit">
    </form>
  </body>
</html>

Файл post.gs

function doPost(e){
if(e.parameter.officeName!="" && e.parameter.userName=="admin" && 
e.parameter.password=="admin"){
 return ivDashboard(e.parameter.officeName);
  }
else{
return faulty();
  }
}

function ivDashboard(officeName){
   var html = HtmlService.createTemplateFromFile("index");
   html.officeName = officeName;
   return html.evaluate();
}

function faulty(){
var html=HtmlService.createTemplateFromFile("faultyLogin");
return html.evaluate();
}

faultyLogin.html

     <script>
         google.script.run.withFailureHandler(failed).
    withSuccessHandler(dropdown).getDropdown("Offices", "A", 3, "list");

       function dropdown(dropdown){
          var datalist = document.getElementsByClassName(dropdown[0]);
                var len = dropdown.length;
                var options = ""; 
                for (i = 1; i < len; i++) {
                    options = options + "<option value='" + dropdown[i] + 
    "'>" + dropdown[i] + "</option>";
                }
                for (n in datalist) {
                    datalist[n].innerHTML = options;
                 } 
        }


function failed(e){
alert("Error:", +e);
}

</script>

     <form  
 action="https://script.google.com/a/macros/caplineservices.com/s/
AKfycbw1BhOakZMzoGnErWw2uBuZzDawn8ThQjEQpBm_nSd6Eyb3NITF/exec" 
    method="POST" target="_blank" align="right" id="loginForm" 
style="transform:translateX(-100px)">
    <!-- IV Form web app url where the database sheet is linked and request 
will be processed-->
    <h4 style="font-size:40px;
 font-family: 'Trebuchet MS', Arial, Helvetica, serif; 
color:#4fbcef">Login</h4>
 <p style="color:red;font-size:110%;font-style:italic;"> Please enter 
correct username or password.</p>    
   <p> Select Office: <select class="list" name="officeName" 
style="padding: 3px;width:200px;color:#ffffff;" ></select></p>

   <p style=""> Username: <input type="text" name="userName" 
placeholder="Username" style="padding: 3px;width:200px;">
    </p>
    <p> Password: <input type="password" name="password" 
placeholder="Password" style="padding:3px;width:200px;"> 

    </p>
    <input type="submit" value="Login" align="center" class="submit">
    </form>

1 Ответ

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

Поскольку скрипт выполняется в iframe, target может быть только _blank или _top 1 .Используйте _top для загрузки в верхнюю рамку.

...