• ベストアンサー

JSによるリンク先の値の取得

はじめまして。 どうしてもできないため、どなたかご教授お願い致します。 私がやろうとしているのは、広告タグで配信されるFLASHorGIF画像をJSで判定し、もしFLASHまたはGIF画像が配信されていれば何もせず、配信されていなければAページへリンクというものを作成しております。 ただ、JSについては初心者のため(FLASHは多少やっております)先に進めず困っております。。 下記が私なりに作成したソースです。 <script language="JavaScript" type="text/javascript"> <!-- var gazo = document.write('<scr' + 'ipt type="text/javascr' + 'ipt" src="配信先URL"></scr' + 'ipt>'); alert(gazo); if(gazo != "document.write('');"){ alert('広告あり'); }else{ alert('広告なし'); } var objBody = document.getElementsById("welcome_pr").item(0); objBody.appendChild(gazo); //--> </script> 配信先URLは仕事のため、記載していません><申し訳ございません。 alert(gazo);で何かしら値が取得できるかなと思ったのですが undefindとしか出ません。 先が見えない状況で、非常に困っています。 どなたかお教え頂けないでしょうか。 宜しくお願い致します。

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

  • ベストアンサー
  • t_netbug
  • ベストアンサー率34% (15/44)
回答No.2

広告はSCRIPTタグで挿入されているのでしょうか? document.write()は戻り値がなかったハズで、undefinedが戻ってくるのはそのせいだと思います。 なのでご提示頂いたソースの場合は document.write('<script type="text/javascript" id="jsc" src="配信先URK"><\/script>); のようにidを振り、 var gazo = document.getElementById("jsc"); のようにする事でSCRIPTタグのオブジェクトが取得出来るハズです。 でも、これで取得してみても画像がロードされたかは恐らく判別出来ないと思います。 私の推測になります。 参照先ファイルが、HTMLのbody部分にimgタグやらを記述しているハズです。 確認方法ですが、以下のようにソースを書いてみてください。 window.onload = function(){ var html = document.getElementsByTagName('html').item(0); alert(html.innerHTML); } 外部スクリプトタグがimgタグあるいは、flash用のタグを記述した痕跡が見えるハズです。 色々なパーツを書いているとわかりにくくなると思うので下記のように単純なソースを書いて、比較してみる事をお勧めします。 <html> <head> <script type="text/javascript"> window.onload = function(){ var html = document.getElementsByTagName('html').item(0); alert(html.innerHTML); } </script> </head> <body> <script src="text/javascript" src="配信先URL"></script> </body> </html> 挿入された物が見つかればあとはそれを document.getElementsByTagName(タグ名).item(0スタートのインデックス番号) で取得し、ロード出来ているか調べれば良いと思います。 あと…、document.write()内にタグを書く時は注意しないといけない事があるみたいです。 閉じタグの場合</****>を<\/****>にしておかないと止まる事があるみたいです。私は、今日知りましたorz ↓ http://d.hatena.ne.jp/aql/20060615/1150300264http://d.hatena.ne.jp/aql/20060615/1150300264 スイマセン長々と…。>_<

その他の回答 (1)

  • fujillin
  • ベストアンサー率61% (1594/2576)
回答No.1

広告の有無を何で判定しようとしているのか、よくわかりませんが・・・ 自分自身のHTML内の<script>タグで、srcが配信先URLのものがあるかないかということで判定するということでよいのでしょうか? また、配信先URLは常に一定と考えてよいのでしょうか? ヒントになるかも不明ですが・・・ (判定部分のみ) 他に、onload functionがないものと仮定しています。 window.onload = function(){ var st=document.getElementsByTagName('script'); var i = -1; var flg = 1; while (++i<st.length && flg){flg=(st[i].src=="配信先URL")?0:1;} alert(flg?'広告なし':'広告あり'); }

noguchi74
質問者

お礼

御回答有難うございます。 ちょっと状況が変わりました。。 もし広告がない場合は RadSpecailという変数にtrueが入っている空の広告を配信するということです。 このflagを参照したいのですが、その場合はどのようにいたらいいでしょうか? また、配信先URLは一定です。 申し訳ありませんが、宜しくお願い致します。

関連するQ&A