• 締切済み

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

  • Thickboxを自動で閉じることは不可能でしょうか?

    お世話になります Thickbox.jsを使用してloading graphのようなものを作っているのですが100%になったら自動で閉じるようにはできないでしょうか? <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd"> <html lang="ja"> <head> <title>Thickbox</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" /> </head> <body><div id="wrapper"> <a href="search.html?placeValuesBeforeTB_=savedValues&TB_iframe=true&height=90&width=300" title="charasearch" class="thickbox"> <input type="button" value="character search" class="search"> </a> </div> </body> </html> <<search.html>> 実際にはhtmlファイルではなくcgiファイル(search.cgi)で処理を行っています Thickbox.cssをいじって本文のみ表示させてます(上側のTitleやcloseボタンはdisplay:none;しています 必要なとこだけになりますが・・・ <script type="text/javascript"><!-- window.onload = function() { Timer = setInterval('counts()',1); } w=0; function counts() { w += 1; document.getElementById("graph").style.width = w + "px"; if(w >= 300) { clearInterval(Timer); } } //--></script> <style type="text/css"><!-- #graph { width:0px; height:20px; background-color:red; margin-top:5px; float:left; } --></style> <div id="graph"><div> ページを移動させていけば簡単なのですが大まかな流れとして id,passなどを入力 character searchボタンを押す Thickboxでseach.cgiを呼び出しchara.cgiの中から同じものがないか調べる あればエラー表示、なければ続けて入力といった感じにしています

  • thickboxのグループ化がうまくいかない原因は?

    はじめまして。 thickboxと格闘しています・・・ グループ化しなければ、ふつうに表示できるのですが、 グループ化したとたんに、見られなくなります。 これは、なぜなのでしょうか??? 特別変わったことは何もしていません。 バッティングするようなjsも、置いてません。 javascriptのことはほとんどわかりませんので、 簡単に教えていただけるととても嬉しいです。 ちなみに・・・ index.html(このページで表示させたい) jquery.js thickbox.css thickbox.js 001.jpg 002.jpg 003.jpg これらをすべて同じレベルに配置しています。 ↓index.htmlは、こんな感じです。 -------------------------------------------------- ~略~ <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8"> <title>サンプル</title> <script type="text/javascript" src="jquery.js"></script> <script type="text/javascript" src="thickbox.js"></script> <link href="thickbox.css" rel="stylesheet" type="text/css" media="all"> </head> <body> <a href="001.jpg" class="thickbox" rel="test" >画像1</a><br> <a href="002.jpg" class="thickbox" rel="test" >画像2</a><br> <a href="003.jpg" class="thickbox" rel="test" >画像3</a> </body> ~略~ -------------------------------------------------- 初歩的なことで申し訳ないのですが、宜しくお願いいたします。

  • thickboxで画像ギャラリーが表示されない

    あるサーバー上でthickboxの画像ギャラリーが表示されていたんですが、別のサーバに移し変えたとたんに表示されなくなりました。 <script language="javascript" src="js/jquery.js" type="text/javascript" charset="UTF-8"></script> <script type="text/javascript" src="js/thickbox.js" charset="UTF-8"></script> <link rel="stylesheet" href="css/thickbox.css" type="text/css" media="all"> </head> <body> <div class="others"><a href="new_bike/12413289033.jpg" title="花" rel="old" class="thickbox"><img src="images/other_button.gif" border="0" alt="その他の画像" class="rollover" /></a><a href="new_bike/12413289034.jpg" title="木" rel="old" class="thickbox" style="display : none;"></a></div> 表示されなくなってからはスクリプトタグ内にcharset="UTF-8"を追加しただけです。 サーバ環境に依存するのでしょうか? 教えてください。 宜しくお願いします。

  • thickboxのjavascriptについて

    ウェブサイト作成初心者です。 ホームページの一部のページでthickboxを使用してhtmlを表示するページを作ろうとしています。 その場合 <head>~</head>内に <script type="text/javascript" src="jquery.js"></script> <script type="text/javascript" src="thickbox.js"></script> <link href="thickbox.css" rel="stylesheet" type="text/css" /> はthickboxを使うページだけに記述すればいいのでしょうか。それとも前ページに記述しないといけないのでしょうか。 お分かりなられる方、お手数ですが教えてくださいませ。

    • ベストアンサー
    • HTML
  • jqueryのloadで読み込んだページ内でthickboxで画像を表示する方法

    画像表示処理方法で教えて頂ければと思います。 テスト用に2つのファイル(index.html, test.html)を用意しました。 index.htmlで thickboxを使用して画像をクリックすると希望通り (画像がアップ表示)の動作をします。 しかしindex.htmlのloadで test.html読み込んだ時の画像部分が、 target="_self"で押したときの動作になってしまいます。 解決方法、よろしくお願いします。 -----index.html----- <html> <head> <link href="thickbox.css" type="text/css" rel="stylesheet" /> <script type="text/javascript" src="jquery.js"></script> <script type="text/javascript" src="thickbox.js"></script> <script type="text/javascript"> <!-- function init(){ $("#Test").load("test.html"); } // --> </script> </head> <body onload="init()"> <div id="Test"></div> <hr> (2)<a href="test.gif" title="" class="thickbox"><img alt="" src="test.gif" /></a> </body> </html> -----test.html----- (1)<a href="test.gif" title="" class="thickbox"><img alt="" src="test.gif" /></a>

  • thickbox.js使用時のフォームの取得方法をご教授願います。

    thickbox.jsを使用しているページで セレクトの値をPHPに渡したいと考えているのですが、 値の取得の仕方がわからず困っております。 ソースは以下のようなカンジです。 [値を取得]を押下した時セレクトボックスの値を取得しようとしています。Firebugでは以下のようにエラーがでます。 document.FrmThick.PrefectureCD has no properties どなたかアドバイス頂けますでしょうか? ----------------------------------------------------- <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=shift_jis"> <title>Sample</title> <link rel="stylesheet" href="thickbox.css" type="text/css"> <script type="text/javascript" src="jquery.js"></script> <script type="text/javascript" src="thickbox.js"></script> </head> <body> <a href="#TB_inline?height=300&width=600&inlineId=condition" class="thickbox" title="条件を設定してください">ThickBoxについて</a> <style> #condition { visibility:hidden; } </style> <script> function test (){ alert(document.FrmThick.PrefectureCD.value); } </script> <div id="condition"> <form action="" method="get" name="FrmThick" id="FrmThick"> <!--都道府県--> <select id="PrefectureCD" name="PrefectureCD"> <option value="1">北海道</option> <option value="2">青森県</option> </select> <a href="javascript:test();">値を取得</a> <!--/都道府県--> </form> </div> </body> </html>

  • JavaScriptを使ってWebページにメッセージを表示させる

    html内に<div id="info"></div>と書き、それをjavascriptのプログラムから「こんにちは」というメッセージを表示させるようにしたいのですが、何度試しても製作途中の段階でdocument.getElementById(id) has no propertiesというエラーが出てしまいます。(←Firebugでエラーが検出されます) どこが間違っているのか教えていただけると助かります。 ================= HTML ================= <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> <html xmlns="http://www.w3.org/1999/xhtml" lang="ja" xml:lang="ja" dir="ltr"> <head> <meta http-equiv="content-script-type" content="text/javascript" /> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <title>map</title> <link rel="stylesheet" type="text/css" href="common/css/main.css" /> <script src="common/js/main.js" type="text/javascript" charset="utf-8"></script> </head> <body> <div id="info"></div> </body> </html> ================= JavaScript ================= var map window.onload = function() { load(); } function _d(id, htmlTxt) { document.getElementById(id).innerHTML = htmlTxt; } _d("info","こんにちは");

  • ThickboxでHTMLを指定サイズで表示したい

    ThickboxでHTMLページを指定したサイズで表示させたい。 お世話になります。 自社サイトでthickboxを使用したいと考えています。既に画像をクリックして大きな画像を表示させる(オーバーレイ表示)ためにthickboxを導入しており、それは比較的簡単だったのですが、今回は別個に作成したHTMLページを同じようなデザインで表示させたいと思っています。 いろいろなサイトを参考にしてこのようなソースになりました。table{width:800px;height:600px}が記述されたsample01.htmlというページをやはりwidth:800px、height:600pxでthickboxでオーバーレイ表示させたいというのが目標です。 <head> <link href="css/thickbox.css" rel="stylesheet" type="text/css" media="all"/> <script type="text/javascript" src="js/jquery.js"></script> <script type="text/javascript" src="js/thickbox.js"></script> </head> <body>~中略~ <a href="sample01.html?width=800px&height=600px" class="thickbox"><img src="images/sample02-small.jpg" alt="画像の説明" border="0"></a> </body> ところが、一応Thickboxは機能するのですが、キレイな形で表示されず、またその理由もよく分からず困っています。初心者なので、つまらないところで行きつまっているかもしれませんが、どうか知恵をお貸し下さい。 ※分からない点 (1)800×600px指定しているのに、小さいサイズで表示され、その文スクロールバーが表示される。インラインフレームのようなデザインにしたくない。 (2)上部にグレー部分ができる(Closeボタン用だと思われるがいらない)。既に画像を表示させる際の場合のように右上部に自分で制作したボタンを配置してCloseボタンとしたい。 既に作成したthickboc.cssは--- #TB_closeWindow{ position:absolute; width:30px; height:30px; top:-15px; right:-15px; } #TB_closeWindowButton{ background-image:url(../images/button-thickbox-close.png); position:absolute; width:30px; height:30px; } (3)表示させたHTMLが文字化けする。 <script type="text/javascript" charset="Shift_JIS"></script>指定しています。 以上です。どうかご教示よろしくお願いします。

    • 締切済み
    • CSS
  • JSの記述を別ファイルに移す

    下記のHTML内の <script type="text/javascript">~</script> をtest.jsとして別ファイルに移す場合にどのように、記述するればよいのでしょうか。単純にコピペしたのですがうまくいきません。 初歩的だとは思いますが、ご指導をお願いします。 --------------------------------- <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <html lang="ja"> <head> <meta http-equiv="Content-Style-Type" content="text/css"> <meta http-equiv="Content-Script-Type" content="text/javascript"> <link href="css/style.css" rel="stylesheet" type="text/css" /> <script type="text/javascript" src="js/Draggable.js"></script> </head> <body> <div id="test1" class="test"></div> <div id="test2" class="test"></div> <script type="text/javascript"> var test1 = new Draggable("test1"); var test2 = new Draggable("test2"); </script> </body> </html>

  • innerHTMLにて設定した情報を再度取得する事は可能でしょうか?

    innerHTMLにて指定idタグ情報を変更する事は出来るのですが、innerHTMLにて設定した情報を再度取得する事は可能でしょうか? 下記のコードを考えてみたのですが、 再取得出来ません。 環境はXPでIE6とFF3です。 ご教授よろしくお願いします。 <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=EUC-JP"> <title>DOM情報の再取得</title> <script type="text/javascript" language="JavaScript"> <!-- function setText1(data) { document.getElementById("test1").innerHTML = data; return false; } function setText2(data) { document.getElementById("test2").innerHTML = data; return false; } function setText3(data) { document.getElementById("test3").innerHTML = data; return false; } //--> </script> </head> <body> <div id="test1"></div> <div id="test2"> </div> <div id="test3">テスト3</div> <br> <a href="javascript:void(0);" onClick="setText1('セットテスト1'); return false;">1</a> <a href="javascript:void(0);" onClick="setText2('セットテスト2'); return false;">2</a> <a href="javascript:void(0);" onClick="setText3('セットテスト3'); return false;">3</a> <script type="text/javascript" language="JavaScript"> <!-- document.write("<br><br>\n"+'再取得'+"<br><br>\n"); //document.write("js_test1="+document.getElementById("test1").childNodes[0].nodeValue+"<br>\n");//エラーになるのでコメントアウト document.write("js_test2="+document.getElementById("test2").childNodes[0].nodeValue+"<br>\n"); document.write("js_test3="+document.getElementById("test3").childNodes[0].nodeValue+"<br>\n"); //--> </script> </body> </html>

専門家に質問してみよう