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

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

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

HTMLのタグ<iframe>です。<iframe>は、ドキュメント内に""inline frame""を作るHTML要素で、同じページでセパレートしているドキュメントが表示されるようにします。

jQuery

jQueryは、JavaScriptライブラリのひとつです。 簡単な記述で、JavaScriptコードを実行できるように設計されています。 2006年1月に、ジョン・レシグが発表しました。 jQueryは独特の記述法を用いており、機能のほとんどは「$関数」や「jQueryオブジェクト」のメソッドとして定義されています。

Q&A

解決済

2回答

3004閲覧

親フレームで子フレーム内のクリックイベントを取得したい

u-sukesan

総合スコア156

iframe

HTMLのタグ<iframe>です。<iframe>は、ドキュメント内に""inline frame""を作るHTML要素で、同じページでセパレートしているドキュメントが表示されるようにします。

jQuery

jQueryは、JavaScriptライブラリのひとつです。 簡単な記述で、JavaScriptコードを実行できるように設計されています。 2006年1月に、ジョン・レシグが発表しました。 jQueryは独特の記述法を用いており、機能のほとんどは「$関数」や「jQueryオブジェクト」のメソッドとして定義されています。

0グッド

1クリップ

投稿2019/01/17 09:05

親ページでiframe内の要素をクリックした際に要素の情報を取得したい。

下記のように書いてみましたが、発火せず困っています。
ネット上にもいくつかありますが、どれもうまくいかず質問しました。

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

親ページ

<html> <head> <script type='text/javascript' src="js/jquery-2.1.4.min.js"></script> <script> //************************************************************************ //画像クリック //************************************************************************ $(window).load(function() { $("#phbox").contents().find(".img_set").on("click touchend", function(e) { e.preventDefault(); alert($(this).data('no')); }); }); </script> </head> <body> <iframe src="hoge.html" width="100%" height='100%' frameborder="0" id="phbox"></iframe> </body> </html>

子(hoge.html)

<html> <head> <script type='text/javascript' src="js/jquery-2.1.4.min.js"></script> </head> <body> <div class='img_set' data-no='1'>ボタン</div> <div class='img_set' data-no='2'>ボタン</div> <div class='img_set' data-no='3'>ボタン</div> <div class='img_set' data-no='4'>ボタン</div> </body> </html>

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

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

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

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

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

guest

回答2

0

ベストアンサー

Firefoxでなら問題なく発火します。Chromeでローカル(サーバに置かずに)で確認していませんか?
Chromeはローカルでは、iframeへのJavaScriptでのアクセスとかAjaxとかが出来ません。

【同一オリジンポリシー | MDN】
https://developer.mozilla.org/ja/docs/Web/Security/Same-origin_policy#Cross-origin_network_access

【Chromeでローカルファイルをiframeで表示したときの注意 - ほげほげ(仮)】
https://starzero.hatenablog.com/entry/20100627/1278766055

投稿2019/01/17 16:40

編集2019/01/17 16:41
kei344

総合スコア69398

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

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

u-sukesan

2019/01/18 02:37

ありがとうございます。サーバー上でテストしています(T T) ちなみにchromeです。safari,firefoxでも動かなかったので凡ミスかもしれませんので、今一度コードを確認してみます。
u-sukesan

2019/01/18 02:43

そういえばクロスドメインでした・・ そりゃ無理ですね
u-sukesan

2019/01/18 02:57

そんなものがあるんですね。 子も親もどちらも自家製ですので、調べてチャレンジしてみます。 ありがとうございました。
guest

0

$('iframe').on('load', function () {});で囲ってみてください

jquery

1 $('iframe').on('load', function () { 2 $("#phbox").contents().find(".img_set").on("click touchend", function(e) { 3 e.preventDefault(); 4 alert($(this).data('no')); 5 }); 6 });

投稿2019/01/17 10:37

akihiro3

総合スコア955

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

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

u-sukesan

2019/01/17 16:24

ありがとうございます。 $(window).load(function() { を $('iframe').on('load', function () { としてみましたが、発火しないですね consoleも何も出ないです
akihiro3

2019/01/18 02:03

エラーは出てないですか?
akihiro3

2019/01/18 02:08

あ、エラー出ないのですね。 kei344サンの回答通りサーバに置かなければ駄目です。
u-sukesan

2019/01/18 02:35

サーバー上でテストしています(T T) 少しコードなど間違いないか確認してみます
u-sukesan

2019/01/18 02:43

そういえばクロスドメインでした・・ そりゃ無理ですね
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問