• 締切済み

Thickboxに表示されたページのアドレスを取得できないでしょうか?

お世話になります 入力されたアドレスが実在するか調べたいのですがThickboxに表示されたホームページのアドレスを取得することはできないでしょうか? <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd"> <html lang="ja"> <head> <title>chosproduce.com</title> <meta http-equiv="Content-Style-Type" content="text/css"> <meta http-equiv="Content-Script-Type" content="text/javascript"> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <script type="text/javascript" src="./js/jquery.js"></script> <script type="text/javascript" src="./js/thickbox.js"></script> <link rel="stylesheet" href="./css/thickbox.css" type="text/css" media="screen"> <script type="text/javascript"><!-- function addcheck() { url = document.getElementById("add").value; document.getElementById("hide").href = url + "?placeValuesBeforeTB_=savedValues&TB_iframe=true&height=0&width=0"; document.getElementById("push").click(); document.getElementById("er").innerHTML = ""; checkurl = (Thickboxに表示されたアドレス); if(checkurl != url) { document.getElementById("er").innerHTML = "実在しません"; } tb_remove(); } //--></script> <style type="text/css"><!-- #hide { display:none; } --></style> </head> <body> <div> <input type="text" name="add" id="add"> <input type="button" value="check" onclick="addcheck()"> <a href="" title="addcheck" class="thickbox" id="hide"> <input type="button" value="c" id="push"> </a> <div id="er"></div> </div> </body> </html> という感じにしています window.openだと(window名).location.hrefで多分取れると思うのですが開いて閉じると画面がパチッとなってしまうのでできません thickboxだとwindow名(iframe仕様になってるのでiframe名かな?)が何かお分かりになる方いらっしゃいますでしょうか?

みんなの回答

回答No.2

> 2つ目、3つ目は処理自体はできたのですが空白("")を取得してしまうようでダメでした(TT) class="thickbox"と書かれたエレメントのhref要素を表示していると思ったのですが、 <a href="" class="thickbox"> hrefを何も指定しなくても、どこかのページが表示されているのでしょうか? thickboxで表示するためのURL情報を、HTML文内のどこかに書いてあると思うのですが、それを取得してはいかがでしょうか、 ということだったんですが。。。 > 表示先が404NotFoundページか調べる方法ってありますでしょうか? <frameset>では try{ loc=top.frames[0].location; }catch(e){ loc=null; } if(!loc){ alert('file not found'); } でチェックできました。 try-catchしないと、Firefox2でシステムエラーとなるようです。 強引だと思いますが、ご参考まで。

leap_day
質問者

お礼

回答ありがとうございます >hrefを何も指定しなくても、どこかのページが表示されているのでしょうか? Javascriptでhref指定しています try-catchというのははじめて聞きましたね まだ使い慣れてないからだと思いますがIEではnullになったりFirefoxだと入力したURLそのままがでたりしてます もうちょとがんばってみますね(^^)

回答No.1

<div id="thickbox">みたいなエレメントを作ってそうだから、 nodes=document.getElementById('thickbox').getElementsByTagName('*'); for(var i=0,node;node=nodes[i];i++){ if(node.nodeName=='iframe'){ //node.contentWindow.location.href }else if(node.nodeName=='何か'){ //node.innerHTML } } 総当たりしてみるとか。。。 (ブラウザ互換性考慮せず。というかcontentWindowで良かったんだろうか。。。) または > <a href="" title="addcheck" class="thickbox" id="hide"> このhrefを読み込んでるだけなら、 document.getElementById('hide').hrefで行けそうな気はしますが。。。 全然違う処理になってしまいますが。 var theHref=''; onload=function(){ var as=document.getElementsByTagName('a'); for(var i=0,a;a=as[i];i++){ a.addEventListener('click', function(e){theHref=this.href;}, false); } } function addcheck(){ alert(theHref); } <input type="button" value="check" onclick="addcheck()"> 未検証です。

leap_day
質問者

お礼

色々と考えてくださりありがとうございます 1つ目はthickboxを開いたあとに処理をおいてみたのですが document.getElementById("thickbox")はnulとなってしまいました 2つ目、3つ目は処理自体はできたのですが空白("")を取得してしまうようでダメでした(TT) もうちょっとthickbox.jsやcssを見ながら色々と試してみます 入力されたURLが表示できるか調べたいのですが何か別の方法でもかまいませんのでご存知でしたら教えていただけると幸いです メルアド実在チェックはよくあるんですがURL実在チェックはなかなか検索にひっかからなくて・・・ できれば(登録記入画面中なので)調べてますよ~とわからないようにしたいのですが・・・ 無理なようでしたらページを移動させながらそれとなく調べたり、iframeに表示させたりすることも考えます

leap_day
質問者

補足

お世話になります あれから色々とやってみたところやはりiframe表示のようで document.getElementsByTagName("iframe")[0].src でアドレスはなんとか取得できたのですがそれが404NotFoundページかどうかが調べることができません 表示先が404NotFoundページか調べる方法ってありますでしょうか?

関連するQ&A