サイト内検索
Cocoonフォーラム
書き込みの前に以下の3点をご確認ください。
何を書き込んだら良いか分からない場合は、以下のテンプレートをコピペしてご利用ください。
不具合・カスタマイズ対象ページのURL:
相談内容:
不具合の発生手順:
解決のために試したこと:
※文字だけでは正しく伝わらない可能性があるため、スクショ画像の添付もお願いします。
※高速化設定をしている場合は無効にしてください。
環境情報:※↑こちらに「Cocoon設定 → テーマ情報」にある「環境情報」を貼り付けてください。
環境情報の取得方法はこちら。
→ https://wp-cocoon.com/theme-report/
高速化設定を無効にするにはこちら。
→ https://wp-cocoon.com/theme-trouble/
フォーラム利用ガイドリンク
- フォーラムガイドライン
- よくある質問と答え(FAQ)
- サポート対象外のケース
- 原因不明の不具合用トラブルシューティング
- トピックにHTMLを貼り付ける方法(推奨ツール:notepad.pw)
- 真っ白画面でのエラーメッセージの確認方法
- ブラウザ環境チェックツール
- Cocoonカスタマイズ依頼
フォーラム質問後、問題等が解決した場合は結果を書き込んでいただけると幸いです。同様の問題で調べている方には、結果が一番気になる部分となります。
Topic starter
2022年8月3日 16:00
不具合・カスタマイズ対象ページのURL:
https://kasegix.com/testforms/
相談内容:
Cocoonのサイトに、Googleフォームでアンケートフォームを設置し、画像認証画面が画面上に表示されるようにしたいです。
Googleフォームでアンケートフォームの設置はできています。
問題は、フォームに入力をした後、画面が一番上に移動しないため、画像認証画面を表示するには、ユーザーが上にスクロールしないといけない点です。
画面が一番上に移動しないのは、「次へ」をクリックした時も同様です。
Googleフォームの専用入力ページ(外部サイト)では正しい挙動をします。
しかしCocoonのサイトにiframeで貼り付けた場合、ページ上部に移動しないという不具合が起こります。
ということは、Cocoonかiframeに何かを加えれば、問題は解決できるかもしれないと思いました。
どうすれば、「次へ」と「送信」をクリックした際、ページが上部に移動するようになるでしょうか?
状況を理解しやすいよう、フォームに試し入力できるように、以下にサンプルページを作成しました。
https://kasegix.com/testforms/
プラグインは全て無効化して試しましたが、変わりませんでした。
もし本問題が、Googleフォームの仕様だということでしたら、諦めます。
宜しくお願い致します。
<補足1>
Googleフォームでは、「メールアドレスを収集する」をONにし、
「回答のコピーを回答者に送信」を「常に表示」にすると、reCAPTCHA v2が機能するようになります。
<補足2>
アンケートページを複数ページ(複数セッション)にすると、最下部に「次へ」ボタンが出てきます。
「次へ」をクリックすると、画面が真っ白になります。
上にスクロールすると、次のページが出てきます。
<補足3>
最終ページの「送信」をクリックすると、デバイスによっては画像認証画面が出てきます。
しかし補足2と同様、画面が真っ白になるため、上にスクロールしないと画像認証画面が出てきません。
スマホの場合、10回以上、上にスクロールしないと画像認証画面が出てきません。
そのため、お客様は画像認証をしていないため回答を送信できてい状態にも関わらず、回答を正しくしたと思ってしまいます。
<補足4>
サイト上では上にスクロールしないと画像認証画面が出てきませんが、Googleフォームの専用画面(外部ページ)だと正しく挙動し、ページ上部に移動します。
iframeかCocoonの仕様で、上手く動いていないように思います。
<補足5>
サンプルページ
https://kasegix.com/testforms/
に、
Googleフォーム テストフォームの外部リンク
https://forms.gle/wTCQe7oaqorgdaa77
コード
<iframe src=” https://docs.google.com/forms/d/e/1FAIpQLSf3igHlkWLvf3ptqgEGKW6O-hxgtGVXQWt_pT1MMxZ0A2EzKg/viewform?embedded=true” width=”100%” height=”5000″ frameborder=”0″ marginheight=”0″ marginwidth=”0″>読み込んでいます…</iframe>
iframeでサイトに貼り付けたフォーム
を載せました。
宜しくお願い致します。
環境情報:
----------------------------------------------
サイト名:稼げるサイトの作り方
サイトURL: https://kasegix.com
ホームURL: https://kasegix.com
コンテンツURL:/wp-content
インクルードURL:/wp-includes/
テンプレートURL:/wp-content/themes/cocoon-master
スタイルシートURL:/wp-content/themes/cocoon-child-master
親テーマスタイル:/wp-content/themes/cocoon-master/style.css
子テーマスタイル:/wp-content/themes/cocoon-child-master/style.css
スキン:/wp-content/themes/cocoon-master/skins/skin-mixred/style.css
WordPressバージョン:6.0.1
PHPバージョン:7.4.28
ブラウザ:Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.0.0 Safari/537.36
サーバーソフト:Apache
サーバープロトコル:HTTP/1.1
言語:ja,en-US;q=0.9,en;q=0.8
----------------------------------------------
テーマ名:Cocoon
バージョン:2.4.7
カテゴリ数:6
タグ数:0
ユーザー数:1
----------------------------------------------
子テーマ名:Cocoon Child
バージョン:1.1.1
style.cssサイズ:2590バイト
functions.phpサイズ:203バイト
----------------------------------------------
Gutenberg:1
AMP:1
PWA:1
Font Awesome:5
Auto Post Thumbnail:0
Retina:1
ホームイメージ:/wp-content/themes/cocoon-master/screenshot.jpg
----------------------------------------------
ブラウザキャッシュ有効化:0
HTML縮小化:0
CSS縮小化:0
JavaScript縮小化:0
Lazy Load:1
WEBフォントLazy Load:1
----------------------------------------------
利用中のプラグイン:
Aurora Heatmap 1.5.4
BBQ Firewall 20220517
Broken Link Checker 1.11.17
Contact Form 7 5.6.1
Disable Generate Thumbnails 2.10
Google XML Sitemaps 4.1.5
Invisible reCaptcha 1.2.3
UpdraftPlus - Backup/Restore 1.22.14
Wordfence Security 7.6.0
WP Multibyte Patch 2.9
XO Security 3.3.0
----------------------------------------------
2022年8月3日 19:49
私は Google Forms や Google Apps Script に詳しくありません。ただ、この動作は仕様のように思えました。少なくとも Cocoon や WordPress が原因ではないのは確実です。
解決方法は kase さんがおっしゃるように、Cocoon か iframe に何かを加えることのように思えます。検索したところ、以下の 2 つが出てきました。いずれも質問内容は、kase さんと同じく「送信した後に上にスクロールしたい」です。
- How to make page scroll to top after submit button is pressed in google form?
- Google Forms - in iFrame (scroll to top after Submit)
「JavaScript を追加するか、iframe に onload属性を追加するのはどうでしょう」との回答です。
例えば、子テーマの javascript.js に以下のコードを追加すると kase さんのご希望の動作になるでしょうか?
const googleForm = document.querySelector('iframe[src*="https://docs.google.com/forms"]'); if (googleForm !== null) { googleForm.addEventListener('load', () => { if (window.scrollY > googleForm.clientHeight) { googleForm.scrollIntoView(); } }); }
This post was modified 2年前 by Akira
わいひら reacted
Topic starter
2022年8月3日 21:52
Akiraさん
ご教授ありがとうございます。
まず、PCで試しました。
子テーマのjavaスクリプト.jsに、ご紹介頂いたコードを貼り付けました。
「次へ」をクリックすると、2ページ目の最上部が表示されました。
しかし2ページ目の「送信」をクリックすると、ページ最上部が表示されず、空白のままでした。
ですので、ご紹介頂いたコードは、1ページ目でしか機能しないようです。
そこで参考リンクを確認した所、オンロード属性をiframeに追加するとあったので、オンロードのコードをiframeに追加してみました。
onload="window.parent.scrollTo(0,0)"
すると、1ページ目の「次へ」とクリックした後に加え、2ページ目の「送信」をクリックした後も、最上部が表示されるようになりました。
もう一つ、参考リンクにあったスクリプトコードをiframeに追加しました。
<script> document.querySelector("iframe").addEventListener("load", function() { window.scrollTo({ top: 0, left: 0, behavior: 'smooth' }); }); </script>
すると、1ページ目の「次へ」とクリックした後に加え、2ページ目の「送信」をクリックした後も、最上部が表示されるようになりました。
次に、スマホで試しました。
しかし、javaスクリプト.jsにコードを貼り付ける場合、オンロード属性をiframeに追加する場合、スクリプトコードをiframeに追加する場合、いずれも空白のままでした。
スマホの場合は、javaスクリプト.jsのコード、オンロード属性、スクリプトコードは、いずれも機能しない、ということでしょうか?
できれば、スマホにも対応できる何かがあると嬉しいのですが。。
This post was modified 2年前 6回 by kase
2022年8月3日 23:21
@kase さん
以下のテストフォームをスマホで試したところ、「次へ」のタップで最上部にスクロールします。「送信」は試していないため分かりません。※ フォームにはonload属性が付いていました。
https://kasegix.com/testforms/
スマホのブラウザの設定で JavaScript が無効になっているということはないでしょうか。
わいひら reacted
Topic starter
2022年8月4日 15:14
Akiraさん
スマホの設定を見直し、
「次へ」「送信」をタップしたところ、無事に上部の表示が確認できました。
ありがとうございました!
わいひら reacted
問題の解決に至った場合には、トピック冒頭の「解決済み」をクリックしていただけますと幸いです。
また、有用な回答があった場合は返信右下にある「いいね!」もご活用ください。回答者の励みになります。
(CC BY-ND 2.1)準じていれば(リンクを貼っていただければ)転載も自由です。カスタマイズ記事を書く際にコード等をコピペ利用していただいて構いません。
フォーラムの使い方がよくわからない場合は、テストトピックで自由にテストしていただいて構いません。
最近の書き込みはこちら。
詳細なカスタマイズ依頼をするならこちら。