• ベストアンサー

Flashを埋め込んだページから、Titleタグの情報とURLの取得について

Flashのボタンを押せば、そのFlashを設置してあるページの Titleタグの中身と、設置してあるURLを取得し、PHPでメール送信 できるようなことは可能でしょうか? メール送信はともかく、情報の取得で悩んでいます。 宜しくお願いします。

質問者が選んだベストアンサー

  • ベストアンサー
  • BlurFiltan
  • ベストアンサー率91% (1611/1754)
回答No.1

> Titleタグの中身と、設置してあるURLを取得し、 title の中身は比較的簡単に取得できます。 (ただし,HTMLがSWFと同じドメインにある場合です。) QNo.3780251 「HTMLをパースしたい 」 http://okwave.jp/qa3780251.html でも他の方に回答しましたが, 雑多なものが多すぎる(質問の意図がいまいちつかめなかったのでごちゃごちゃ関係ないことを書いている)ので, 自分自身で引用&変更します。 ---以下変更引用-------------------------------- 「my_flash.swf」 が同じ階層にある 「my_flash.html」 に貼りついているとします。   任意のフォルダ    ├ my_flash.html (my_flash.swf が貼りついている)    └ my_flash.swf その「my_flash.html」の <title>~</title> 間を, 「my_flash.swf」から抜きだす例です。 Flash で新規ドキュメントを作成し, 「my_flash.fla」 というファイル名で任意のフォルダに保存します。 そして,フレーム1 に次のようなスクリプトを書きます(コピペします)。 ////////////////////////////////////////////////////////// // HTML を Shift-JIS として扱う System.useCodepage = true; // テキストフィールド my_txt を作成 _root.createTextField("my_txt", 0, 20, 20, 350, 30); // myLV という LoadVars クラスのインスタンスを作成 myLV = new LoadVars(); // myLV にデータが読み込まれたときの動作定義 myLV.onData = function(my_dat) { my_txt.text = my_dat.split("<title>")[1].split("</title>")[0]; }; myLV.load("my_flash.html"); ////////////////////////////////////////////////////////// (ActionScript1.0,FlashMX 以上(FlashPlayer6以上) で使用可能) これで SWF と HTML をパブリッシュし, HTML をブラウザで開けば動作確認できます。 ただし HTML のタイトルに日本語が使われている場合は, 文字コードが Shift-JIS の場合での話です。 UTF-8 だと,  // HTML を Shift-JIS として扱う  System.useCodepage = true; の部分は不要です。 EUC-JP の場合は普通無理です。 my_txt.text = my_dat.split("<title>")[1].split("</title>")[0]; この行の my_dat.split("<title>")[1].split("</title>")[0]; についてのみ説明します。 これは, my_dat(ロードされたHTML全体)を <title> で2分した配列を作成し, その配列の エレメント1(2分した後側の要素) をさらに </title> で2分した配列を作成し, その配列の エレメント0(2分した前側の要素) を取得するという意味です。 (配列のエレメントは 0 番が最初のエレメントです。) 流れを図示すると次のような感じです。  …○○○<title>△△△</title>□□□… ←my_dat(HTML)    ↓split("<title>")  …○○○  |  △△△</title>□□□…    ↓[1]  △△△</title>□□□…    ↓split("</title>")  △△△  |  □□□…    ↓[0]  △△△ これで <title>~</title> 間の △△△ が取りだせます。 ----------------------------------------------------- SWF が設置してある URL の取得は, 簡単なようで結構難しいです。 少なくとも ActionScript では無理で,JavaScript などの力を借りるしかありません。 次のURL2つを参考にしてみてください。 FLASH-JP.COM - フォーラム 「リンクされたURLの引数を変数として受け取る。」 http://www.flash-jp.com/modules/newbb/viewtopic.php?viewmode=flat&topic_id=6129&forum=6 シンケツ URLからflashにデータを渡す http://sinketu.heteml.jp/2007/07/urlflash.html

reimy1
質問者

補足

BlurFiltanさん初めまして。長文ありがとうございます。 HTMLがSWFと同じドメインにある場合が条件みたいですね。 私としては http://www.sixapart.jp/typepad/widgets/tool/quick_clip.html を参考にしたいのですが、HTMLをパースするプログラミングが 必要ですね。 それと、URLを抜き出すのはJAVAなどを混ぜて じっくり検討する必要がありそうですね。 でも大体難易度というか、どういう方向から攻めていくかの 目処は立ちそうです。BlurFiltanさん感謝です。

関連するQ&A