前提
GAS(Google Apps Script) で、webページを開発しています。
HTML+javascriptにて開発中です。
また、Googleの個人アカウントにて作成しています。
HTMLを表示するブラウザはPC・スマホにてGoogleCromeを使用しています
実現したいこと
GASにて作成したHTMLをスマホのブラウザでオープンし
すべての要素を読み込んだ後自動的に別ページへ遷移(転送)させたいです。
目的としては、
1ページ目で、google.script.runにて内部のスクリプトを自動実行
→その結果によって自動的に別ページへ遷移
のようなことをしたいと思っていたのですが
どうしても別ページへ遷移できません。
ボタンを押したとき、別ページへ遷移する事はできるのですが
そのメソッドをオープン時に実行しても遷移できませんでした。
もしわかる方がいらっしゃいましたら、ご助言お願いいたします。
GASのソースコード
GAS
1function doGet(e) { 2 3 var html = HtmlService.createTemplateFromFile('testupdate') 4 var template = html.evaluate() 5 return template; 6} 7//URLを渡すメソッド 8function getScriptUrl() { 9// var url = ScriptApp.getService().getUrl(); 10 var url = "https://www.google.com/"; 11 return url; 12} 13 14 15function dSave(v){ 16 console.log(v); 17 return true; 18}
HTMLのソースコード
HTML
1<!DOCTYPE html> 2<html> 3 4 <head> 5 <base target="_top"> 6 <script src="https://code.jquery.com/jquery-3.3.1.min.js"></script> 7 <link href="//cdnjs.cloudflare.com/ajax/libs/toastr.js/latest/css/toastr.min.css" rel="stylesheet" /> 8 <script src="//cdnjs.cloudflare.com/ajax/libs/toastr.js/latest/js/toastr.min.js"></script> 9 <script language="javascript" type="text/javascript"> 10 window.addEventListener('load', load); 11 12 // 読込 13 function load() { 14 var mydata = "test"; 15 google.script.run.withSuccessHandler(onSuccess).dSave(mydata); 16 update(); 17 } 18 function sleep(waitSec, callbackFunc) { 19 var spanedSec = 0; 20 var waitFunc = function () { 21 spanedSec++; 22 if (spanedSec >= waitSec) { 23 if (callbackFunc) callbackFunc(); 24 return; 25 } 26 clearTimeout(id); 27 id = setTimeout(waitFunc, 1000); 28 29 }; 30 31 var id = setTimeout(waitFunc, 1000); 32 33 } 34 35 36 function onSuccess(){ 37 alert("成功") 38 sleep(10, function() { 39 update(); 40 document.getElementById("butos").click() 41 }); 42 } 43 function tes(){ 44 location.href = 'https://www.google.com/' 45 } 46 function update() { 47 google.script.run 48 .withSuccessHandler(result).getScriptUrl(); 49 function result(url){ 50 window.open(url, '_top') 51 alert("テスト"); 52 } 53 } 54 </script> 55 </head> 56 <style> 57 label{ 58 font-size : 100px; 59 } 60 </style> 61 <body> 62 <script> 63 window.onload = load 64 </script> 65 <div class="form-wrapper"> 66 <h1>テスト</h1> 67 <input id="button1" class="button" type="button" value="TES" onclick="tes()"></input> 68 <input type="button" id = "butos" value="ブラウザ更新" onclick="update()"> 69 <div class="form-footer"> 70 </div> 71 </div> 72 </body> 73</html> 74
試したこと
onload, window.addEventListener('load', load);などいろいろ試しましたが実行できませんでした。
現状ではupdateというメソッドで遷移を実行しており
様々なタイミングで実行しているのですがどうやっても遷移しません。
updateの中のalertは実行されるのですが、遷移できません。
ブラウザ更新ボタンを押したときには問題なく遷移します。
また、遷移自体もいろいろ試したのですが、window.open(url, '_top')
しかできませんでした。
補足情報(FW/ツールのバージョンなど)
ここにより詳細な情報を記載してください。

回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2022/08/16 00:10