質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
Google Apps Script

Google Apps ScriptはGoogleの製品と第三者のサービスでタスクを自動化するためのJavaScriptのクラウドのスクリプト言語です。

Q&A

解決済

1回答

54071閲覧

GASで指定したURLを別のウィンドウ(タブ)で開く

Arisa.Sunagawa

総合スコア15

Google Apps Script

Google Apps ScriptはGoogleの製品と第三者のサービスでタスクを自動化するためのJavaScriptのクラウドのスクリプト言語です。

0グッド

4クリップ

投稿2018/12/15 07:01

GASで指定したURLを別のウィンドウ(タブ)で開く

自前で作成したHTMLではなく、外部のURLを別ウィンドウで表示する命令文を探しています。

わかる方お願いします。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

ベストアンサー

"外部のURLを別ウィンドウで表示する命令文"について、どのようなものをご想像されているのか分かりませんが、残念ながらGoogle Apps Scriptを使ってURLを別のタブで直接開くことはできません。回避策として、一度Google Docs上でダイアログなどを開き、そこでJavascriptを使って別のタブでURLを開くことで実現することができます。

ただし、この方法では制限としてGoogle Docsのバウンドスクリプトから行う必要があります。もしもスタンドアロンスクリプトで行いたいとお考えの場合はこの方法は使用できませんのでご注意ください。

サンプルスクリプトは下記の通りです。サンプルではスプレッドシートのバウンドスクリプトを使用していますので、スプレッドシートを開いてスクリプトエディタを起動し、そこへ下記のスクリプトをコピーペーストしてから実行してください。

javascript

1function myFunction() { 2 var url = "#####"; // ここへ開きたいURLを入力してください。 3 var script = "<script>window.open('" + url + "', '_blank').focus()</script>"; 4 var html = HtmlService.createHtmlOutput(script); 5 SpreadsheetApp.getUi().showModalDialog(html, 'Open ' + url); 6}

このスクリプトを実行すると、スプレッドシート上にダイアログが開いてそこでURLを開くためのJavascriptが実行され、別のタブでURLが開きます。もしもURLが開いた後にダイアログを閉じたい場合は、scriptを下記のように変更してください。

javascript

1var script = "<script>window.open('" + url + "', '_blank').focus();google.script.host.close();</script>";

投稿2018/12/15 07:58

kisojin

総合スコア899

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

Arisa.Sunagawa

2018/12/15 10:34

質問に色々足りてない…ごめんなさい。 まず、GoogleSitesにボタンを配置し、そのボタンをクリックすることでスクリプトを実行します。 そこで、ボタンを押されたら既定のスプレッドシートをコピーし、名前にタイムスタンプを追加する。 コピーしたスプレッドシートを別タブで開き、編集してもらいたい。 という流れが実現したい処理です。 しかし、スプレッドシート等を表示させることができないので困っている状態です。
kisojin

2018/12/16 01:08 編集

追加情報を有難うございます。こちらこそあなたの達成したいことについて間違った理解をしてしまい申し訳ありませんでした。もしも追加された情報に変更が無いようであれば次のような方法で達成できると思われます。 1. Google Apps Scriptを使って「既定のスプレッドシートをコピーし、名前にタイムスタンプを追加」(コピーした際のファイルの状態やファイル名のフォーマットなどが不明なため、この部分については作成されいてるスクリプトをご使用ください。)を行い、そのスプレッドシートのURLを取得します。 2. Google Apps Scriptを使ってWeb Appsとしてデプロイする。返す値としては``HtmlService.createHtmlOutput("<script>window.open('" + url + "', '_top').focus();</script>");``で宜しいかと思われます。URLは開きたいスプレッドシートのURLです。 3. Google Siteへボタンを設置し、リンクをデプロイしたWeb Appsのエンドポイントに設定します。 あとは、ボタンをクリックするとWeb Appsのスクリプトが実行され、ご希望の動作をすると思われます。 注意点としては、Web Appsのスクリプトを変更した際は必ず新しいバージョンとしてデプロイし押してください。これにより最新版のスクリプトが反映されます。 Web appsについては https://developers.google.com/apps-script/guides/web が参考になります。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問