皆様こんにちは。
WEB作成初心者で常識的な質問でしたら大変申し訳ございませんが、調べてみてもどうしても解決できなかった為ご質問させて頂きました。どうかご教授お願いいたします。
タイトルのとおり、Flash側からjavascriptをコールしたいのですが、
swf側
on(press){
getURL("javascript: a()");
}
html側
function a(){
alert('alert!');
}
のような例の場合、htmlファイルとswfファイルが同じディレクトリ内にある場合は警告ウィンドウがきちんと表示されるのですが、swfを別サーバーに置いてそれを呼び出しているhtmlの場合は警告ウィンドウが表示されません。
私がgetURLの仕様を知らないだけなのかもしれませんが、別サーバーにあるswfファイルをロードしているようなページの場合、どのようにすれば呼び出し元htmlを表示しているウィンドウに対してjavascriptをコールする事が出来ますでしょうか?
お手数をおかけしますがご教授頂ければ幸いです。
No.1ベストアンサー
- 回答日時:
Flash Player 6 以降は、ドメイン間のセキュリティ保護機能が導入されています。
HTML で記述された JavaScript を Flash 側から呼び出す際は、swf ファイルと HTML ファイルが同じドメイン(端的に言うと同じサーバー)に存在しているかどうかが、重要なポイントになります。
別のサーバーにある swf ファイルと HTML ファイル間でやりとりを行う、つまり、HTML ファイルがあるサーバーとは違うサーバーにあるムービーを表示している場合、そのムービーから HTML ファイルに書かれている JavaScript を実行できるようにするかどうかは、ムービーではなく HTML のタグの方に秘密があります。
普通にパブリッシュすると、ムービーを表示するためのHTMLファイルも一緒に作成されます。この HTML ファイルを、メモ帳などで開いてみてください。
<object> ~ </object> で囲まれている部分が、Flash ムービーを表示するためのタグです。
この中に、
<param name="allowScriptAccess" value="sameDomain" />
<embed src=・・・ allowScriptAccess="sameDomain"
という箇所があるかと思います。
この中の”sameDomain”の部分を、2箇所とも、”always”に変更してください。別のサーバーにある swf ファイルからでも、この HTML で記述されている JavaScript を実行できるようになります。
ちなみに、デフォルトである”sameDomain”とは、swf ファイルと HTML ファイルが同じドメインに存在している場合に限り、swf ファイルと HTML ファイルとの間でスクリプトの実行を許可する、という意味です。
同じディレクトリ内にある時は正常なのに、違うサーバーにムービーを置くと動かなくなるのは、このような理由によるものです。
なお、sameDomain にした場合でも、サーバーが同じであればいいだけなので、同じサーバー内にあるムービーと HTML ファイルならば、別のフォルダにあってもスクリプトは実行されます。
ご回答ありがとうございます。
なるほど~swfの呼び出し側のタグだったのですね・・
ムービー側ばかりに気が行ってswf呼び出し側のタグも
一つ一つに意味があるものなのにFlashのパブリッシュ機能に任せて当たり前のように使っておりました。
大変丁寧で分かりやすくご回答して頂きましてありがとうございました。
大変勉強になりました。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- MySQL MySQL,JavaScript,PHPコードの結果を表示する方法を教えてください。 1 2023/02/13 17:49
- JavaScript javascript作成してます。ラジオボタンで判定するコードを書いてます。 1 2023/07/18 11:03
- JavaScript javascriptで変数を組み込みたい 2 2023/01/13 09:52
- JavaScript フォームが空欄の時にフォームの外をクリックすると、エラーが出るコードを調べています。 1 2023/06/25 11:51
- その他(IT・Webサービス) WEBサイト内のファイルを探す方法は? 1 2022/11/11 16:38
- JavaScript 入力フォームの javascript で メールアドレスの正規チェックをを行い、ボタンをクリックして 2 2022/04/27 16:06
- その他(プログラミング・Web制作) WEBアプリ開発に必要な言語 5 2023/06/28 16:57
- JavaScript スマフォではボタンを表示させたくない 2 2023/01/20 14:26
- JavaScript HTML&CSS Javascriptによる動的テーブル 1 2023/03/27 19:51
- JavaScript jQueryでのドラッグアンドドロップについて 1 2022/07/07 21:04
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
exeファイルをWeb上で見せる方法
-
FLASHを使って、複数のswfとjpg...
-
PDFファイルの倍率を変えて保存...
-
個別に違う添付ファイルを付け...
-
サポートされたファイル形式お...
-
Java バイナリデータの扱い
-
【VBA】マクロの入ったファイル...
-
ビデオファイルのプロパティの...
-
エクセルで「特定の文字を含む...
-
e-taxで送信ファイルの拡張子が...
-
自動変数とローカル変数
-
A4の紙に印刷されている文字を...
-
ドアスコープが取れない
-
Xperiaを買いましたが、spモ...
-
エアコンの冷媒 R410Aの重...
-
ファイル数と合計サイズの取得方法
-
シェイプ上で矢印キー(右、左...
-
リストビューの選択状態を取得...
-
Visual Basic.NETの、Form 間で...
-
スマホでtxtファイルを編集する...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
FlashからJavaScriptを呼び出す...
-
swfファイルのfc2ブログへの表...
-
Flashで背景抜け
-
ウェブサイトに設置したFLASHフ...
-
swfファイルの開き方を教えてく...
-
iモード用フラッシュ
-
PDFファイルの倍率を変えて保存...
-
サポートされたファイル形式お...
-
Googleマップに保存した地点が...
-
【VBA】マクロの入ったファイル...
-
個別に違う添付ファイルを付け...
-
e-taxで送信ファイルの拡張子が...
-
エクセルで「特定の文字を含む...
-
スマホでtxtファイルを編集する...
-
複数のブックを新しいブックのS...
-
A4の紙に印刷されている文字を...
-
iPhoneの内蔵の記憶媒体は、HDD...
-
ビデオファイルのプロパティの...
-
エアコンの冷媒 R410Aの重...
-
ガラケーからPCへの写真の取り込み
おすすめ情報