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

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

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

AppleScriptは、アップル社が開発しているMac OS用のスクリプト言語。AppleScript本体に限らず、同じ言語で多くのAppleScript対応アプリケーションを操縦することが可能です。 自然言語(英語)に近い構文を持ちます。

Google Apps Script

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

Google

Googleは、アメリカ合衆国に位置する、インターネット関連のサービスや製品を提供している企業です。検索エンジンからアプリケーションの提供まで、多岐にわたるサービスを提供しています。

HTML

HTMLとは、ウェブ上の文書を記述・作成するためのマークアップ言語のことです。文章の中に記述することで、文書の論理構造などを設定することができます。ハイパーリンクを設定できるハイパーテキストであり、画像・リスト・表などのデータファイルをリンクする情報に結びつけて情報を整理します。現在あるネットワーク上のほとんどのウェブページはHTMLで作成されています。

CSS

CSSはXMLやHTMLで表現した色・レイアウト・フォントなどの要素を指示する仕様の1つです。

Q&A

解決済

2回答

1863閲覧

<a href="#">で画面遷移してしまう。

shunsaku2004

総合スコア2

AppleScript

AppleScriptは、アップル社が開発しているMac OS用のスクリプト言語。AppleScript本体に限らず、同じ言語で多くのAppleScript対応アプリケーションを操縦することが可能です。 自然言語(英語)に近い構文を持ちます。

Google Apps Script

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

Google

Googleは、アメリカ合衆国に位置する、インターネット関連のサービスや製品を提供している企業です。検索エンジンからアプリケーションの提供まで、多岐にわたるサービスを提供しています。

HTML

HTMLとは、ウェブ上の文書を記述・作成するためのマークアップ言語のことです。文章の中に記述することで、文書の論理構造などを設定することができます。ハイパーリンクを設定できるハイパーテキストであり、画像・リスト・表などのデータファイルをリンクする情報に結びつけて情報を整理します。現在あるネットワーク上のほとんどのウェブページはHTMLで作成されています。

CSS

CSSはXMLやHTMLで表現した色・レイアウト・フォントなどの要素を指示する仕様の1つです。

0グッド

1クリップ

投稿2021/10/24 09:14

前提・実現したいこと

GASでWebアプリを製作しています。
機能として、モーダルウィンドウの実装を考えています。

発生している問題・エラーメッセージ

html

1<a href = "#comments"></a>

上記のように、a hrefに#を用いてページ内のidに:targetを付けて操作したいのですが、GAS上ではなぜか以下のURLのようにページが遷移されてしまいます。
https://script.google.com/macros/s/[ID]/dev

https://n-[ID]-0lu-script.googleusercontent.com/userCodeAppPanel#comments

該当のソースコード

コード.gs

gs

1function doGet() { 2 return htmlOutput = HtmlService.createTemplateFromFile("index") 3 .evaluate() 4 .setTitle("Modal Window") 5 .addMetaTag("viewport", "width=device-width,initial-scale=1"); 6}

index.html

html

1<!DOCTYPE html> 2<html> 3 4<head> 5 <base target="_top"> 6 <meta charset='utf-8'> 7 <meta name='viewport' content='user-scalable=no,width=device-width, initial-scale=1'> 8 <title>stopwatch</title> 9 <?!= HtmlService.createHtmlOutputFromFile('css.html').getContent(); ?> 10 <?!= HtmlService.createHtmlOutputFromFile('javascript.html').getContent(); ?> 11</head> 12 13<body> 14 <a href="#comments">Show Comments</a> 15 16 <section id="comments"> 17 <h3>Comments</h3> 18 <!-- Comments here... --> 19 <a href=" # ">Hide Comments</a> 20 </section> 21 22</html>

css.html

css

1<style> 2 3#comments:not(:target) { 4 display: none; 5} 6#comments:target { 7 display: block; 8} 9</style>

javascript.html

javascript

1<script> 2 "use strict"; 3</script>

試したこと

GAS上ではなく、エディタでhtml実行したときは正常に動作しました。

参考URL
https://coliss.com/articles/build-websites/operation/css/target-pseudo-class-trick.html

よろしくお願いいたします。

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

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

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

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

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

guest

回答2

0

ベストアンサー

こうしたらどうでしょうか?

html

1<a href="#comments" onclick="return false;">Show Comments</a>

もしaタグに直接書きたくなければこんな感じでも良いかと思います。

html

1<a href="#comments" id="comments_anchor">Show Comments</a>

javascript

1<script> 2"use strict"; 3 4window.addEventListener('load', () => { 5 document.getElementById('comments_anchor').addEventListener('click', (e) => { 6 e.cancelBubble = true; 7 }); 8}); 9</script>

投稿2021/10/25 02:46

gtakat

総合スコア206

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

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

shunsaku2004

2021/10/26 13:11

gtakatさん ご回答ありがとうございます。 頂いた方法で試して見たのですが、同じ結果になってしまいました、、 お手数おかけしてしまい恐縮ですが、他の方法はありますでしょうか?
gtakat

2021/10/26 13:43

すいません、実際に試してみましたが、手元だと return false; の方に効いている用に見えるのですが、eventListenerだと確かに画面遷移しちゃいました。 もうちょっと他にないか調べてみましたが、HTMLの <base target="_top"> を <base target="_self"> にしてみたらどうでしょうか?
shunsaku2004

2021/11/14 11:16

gtakatさん 返信遅れてしまい申し訳ありません。 _selfに変更することで無事解決することができました!! ありがとうございます!
guest

0

そもそも、GASのウェブアプリケーションはiframeのsandbox内なので、そもそも仕様でアンカーを使ったアクションは出来ません。

jQueryを使ったアクションで代用することになります。

JavaScript

1$('a[href*=#]').click(function() { 2 var target = $(this.hash); 3 if (target) { 4 var jumpman = target.offset().top; 5 $('html,body').animate({scrollTop: jumpman},600,"easeInOutQuart"); 6 return false; 7 } 8});

参考:Google Apps Scriptでウェブアプリケーション作成入門

投稿2021/10/27 07:39

officeforest

総合スコア412

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

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問