2つのインラインフレームがあって、片方はidがgform のGoogleフォーム、もう片方はidがhoge のframe.htmlというファイルが埋め込んであります(実際はローカルファイルにはしない予定)。
このとき、Googleフォームを送信したらframe.htmlがスーパーリロードされるよう、gformのonload属性にdocument.getElementById("hoge").contentWindow.location.reload(true);を指定したのですが実行されませんでした(alertなどは実行されました)。
どうやったら上のようにできますか?このでしゃばりな初心者にどうかお教えください。
————-
gformのonload属性
onload="alert('Hello');document.getElementById('hoge').contentWindow.location.reload(true);alert('Aloha');"
このとき、Helloというポップアップは出るが、Alohaというポップアップは出ない。
(知恵袋にも同じ質問をしています。マルチポストですがどうかお許しください)
A 回答 (1件)
- 最新から表示
- 回答順に表示
No.1
- 回答日時:
こんにちは
同一オリジンと仮定しても良いのでしょうか?
一応、その前提で・・・
ご質問の説明の文章だと、gformの文書の中にid=hogeの文書があるわけではないように読めます。
>document.getElementById('hoge')
は自文書内の要素を取得しようとするので、取得できていないのではないですか?
(文書の関係がはっきりしないので、よくわかりませんけれど・・)
一旦、親文書に戻ってそちらで取得すれば要素の取得は可能です。
window.parent.document.getElementById('hoge')
のような感じで。
※ ただし、同一オリジンでない場合は拒否されます。
ついでながら・・
>スーパーリロードされるよう~
>location.reload(true);を指定~
勘違いをなさっているようですが、引数を指定してもfx以外では「スーパーリロード」の意味にはなりません。
https://developer.mozilla.org/ja/docs/Web/API/Lo …
代替法としては、タイムスタンプ等を付してsrcを再設定するなどが考えられます。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- JavaScript Javascript初心者|jQueryの.val()で値を取得し複数の要素を連結させる方法知りたい 2 2022/06/02 12:06
- AJAX JavascriptからPHPへのAjax通信でnullが返ってくる 3 2022/08/03 22:00
- JavaScript 入力フォームの javascript で メールアドレスの正規チェックをを行い、ボタンをクリックして 2 2022/04/27 16:06
- JavaScript フォームが空欄の時にフォームの外をクリックすると、エラーが出るコードを調べています。 1 2023/06/25 11:51
- HTML・CSS ボタンをクリックした時に、入力フォームのすぐ下部に、「入力欄が空白です」というテキストメッセージが表 1 2022/04/27 16:25
- Windows 10 バッチファイルの記述法とルールについてアドバイスをお願いいたします。 1 2022/04/13 10:50
- JavaScript javascriptで入力フォームが空欄の時にアラートによるエラーを出すコードを書いています。 2 2023/06/13 17:58
- Google Drive Google form を利用して 問い合わせフォームを作りたい 1 2022/04/25 14:15
- Visual Basic(VBA) VBAでの共有パスにつきまして 1 2023/03/04 17:24
- JavaScript JavaScriptで「〇以上▲まで」の書き方 1 2022/07/20 14:44
このQ&Aを見た人はこんなQ&Aも見ています
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
Boolean型配列中のTrueの有無を...
-
Linux バイナリ実行できない "...
-
Excel VBA の ChangeFileAccess
-
Vb.netのグローバル変数の宣言...
-
「オブジェクトが必要です。」...
-
アンカーリンクをクリックさせ...
-
awk内でsystem関数を使用しfunc...
-
VC++のちらつき防止方法
-
HTTPSのとき":"が"%3A"ではなく...
-
【Jquery】changeイベント毎にa...
-
ボタンをクリックすると数が増...
-
ASP+アクセスでのSQLコメントに...
-
ifreamをリロードしたい
-
C# .NET DataGridView の行を追...
-
同じ型【ハイフンと数字】だけ...
-
正規表現で半角数字1桁のみを全...
-
onclick指定関数の引数へローカ...
-
ActiveXobjectが作成できない
-
JavaScript window.openで開く...
-
C#テキストボックスの文字を配...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
【正規表現】【javascript】CR...
-
Linux バイナリ実行できない "...
-
ASP+アクセスでのSQLコメントに...
-
Boolean型配列中のTrueの有無を...
-
Excel VBA の ChangeFileAccess
-
【Jquery】changeイベント毎にa...
-
Vb.netのグローバル変数の宣言...
-
static constメンバ変数(配列)...
-
同じ型【ハイフンと数字】だけ...
-
class指定したHTML要素の背景色...
-
onclick指定関数の引数へローカ...
-
ボタンをクリックすると数が増...
-
HTTPSのとき":"が"%3A"ではなく...
-
「オブジェクトが必要です。」...
-
MFCのキャプション変更
-
ページ離脱時のalertボタンで処...
-
アンカーリンクをクリックさせ...
-
VC++のちらつき防止方法
-
C# .NET DataGridView の行を追...
-
2次元のJSON形式の配列の展開
おすすめ情報
迅速な回答ありがとうございます!
同一オリジンではないのです…
スーパーリロードの件、勘違いしてました。
勉強になります。
一応、下記にソースを載せときます。
<table><tr><td style="width:50%"><iframe width="100%" height="800px" frameborder="0" src="frame.html" id="hoge"></iframe></td> <td style="width:50%"><iframe id="resubmit" width="100%" height="800px" frameborder="0" src="https://docs.google.com /forms/d/e/EXAMPLE/viewform?embedded=true" id="gform" onload="document.getElementById('hoge').contentWindow.location.reload(true);"></iframe></td></table>