• 締切済み

JavaScript で HTML ソース取得

utun01の回答

  • utun01
  • ベストアンサー率40% (110/270)
回答No.1

普通にブラウザ上の「ソースの表示」みたいなものでできませんか? </body>を落としたソースは私の環境上のIE9とFirefoxではそのまま表示されます。 ちなみに、innerHTMLはHTMLで解釈された要素の内容になっているので、そのままの内容がほしければ「innerText」を使うとできるかもしれません。

aki04
質問者

お礼

ありがとうございます。 はい、その「ソースの表示」で出てくるものを javascript で取得したかったのですが…。 ちなみに innerText は Firefox では使えなかったので textContent など見てみたのですがちょっと違うようでした。

関連するQ&A

  • HTMLのソースの取得・正規表現

    プログラム自体始めて間もない初心者です。 javascriptでHTMLのソースを取得して、正規表現でマッチしたURLを書き出したいと思います。 取得したソースから正規表現で抽出はできましたが、さらに手を加えると機能しませんでした。 下記test-1では「http://abc.com/」と表示されましたので思った通りに動きました。 しかし、test-2では「http」と表示されると思っていたところ、表示されませんでした。 この違いはなんでしょうか? //////////////////// test-1 <html> <head> <script type="text/javascript"> function test(){ aaa = document.getElementsByTagName("html")[0].innerHTML; bbb = aaa.match(/http:\/\/abc\.com\//); document.write(bbb); } </script> </head> <body> <input type="button" onclick="test()"> <a href="http://abc.com/"> </body> </html> //////////////////// test-2 function test(){ aaa = document.getElementsByTagName("html")[0].innerHTML; bbb = aaa.match(/http:\/\/abc\.com\//); ccc = bbb.match(/http/); document.write(ccc); }

  • HTMLの取得と解析について

    フォームのtextareaにHTMLを入力して、そこから必要なタグを取得したいのですが上手くいきません。 textareaの値は取得できています。 textareaの値からgetElementsByTagNameを使用してtableタグを取得しようとしているのでがエラーが出ます。 chromeによると Uncaught TypeError: Object ・・・・ has no method 'getElementsByTagName' 取得した値をgetElementsByTagNameにほり込むのが間違ってるような気もするのですが、良く分かりません。 テキストエリアに入力したHTMLをパースして、再利用する良い方法がありましたらご教授ください。 以下に現状のソースを書かせて頂きます --------------------------------------------------------------------- <!DOCTYPE HTML> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8"> <script type="text/javascript"> <!-- function test() { var org_src = document.form1.src.value; table = org_src.getElementsByTagName('table'); document.getElementById('test').innerHTML = org_src; } // --> </script> </head> <body> <p>自動出力</p> <form name="form1"> <p>テキストエリアにソースを張り付けて下さい</p> <p> <textarea id="src" rows="5" cols="30"> </textarea> </p> <p> <input type="button" value="実行" onClick="test()"> </p> </form> <div id="test"> </div> </body> </html> ---------------------------------------------------------------------

  • webbrowserでのjavascriptを含むソース取得

    webbrowserでのjavascriptを含むソース取得 お世話になっております。 VB 2005を利用しています。 webbrowserを用いてHTMLソースの表示をしようと、 WebBrowser1.Document.Body.OuterHtml と記述したところ、javascriptのソースが表示されません。 同じサイトをIEのソースで表示すると問題なく表示できます。 HttpWebRequest を用いたソースの取得方法はわかるのですが、 事情があって、webbrowser上から行いたいのです。 よろしくアドバイスの程お願いいたします。

  • firefox、opera等での番号の数え方

    現在Javascriptを勉強中で 教材中での疑問なのですが 下の記述でどうしても腑に落ちないことがあります。 IEの方の[]の中の番号の数え方は分かるのですが firefox用ではどういう数え方をすれば node[0].childeNodes[5].childeNodes[1].innerHTML......... という数え方になるのでしょうか? 開始タグと終了タグを分けて数えているのでしょうか? 分かる方回答お願いします。 // IE用 function change(){ var node = document.getElementsByTagName("body"); node[0].childNodes[2].childNodes[0].innerHTML = "変更しました"; } // FireFoxやOpera用 function change(){ var node = document.getElementsByTagName("body"); node[0].childNodes[5].childNodes[1].innerHTML = "変更しました"; } --------HTML---------- <body> <h1>サンプル3</h1> <p>ここが変わります。</p> <div> <p>深いノード1</p> <p>深いノード2</p> </div> <form> <input type="button" value="変更" onclick="change();"> </form> </body>

  • HTMLソースをコピーするブックマークレット

    よろしくお願いします。 タイトルのとおり、HTMLソースをコピーするブックマークレットを作りたいのですが、 IEからメモ帳でソースを開いた時と全く同じ内容をクリップボードにコピーしたいのですが、 以下のスクリプトではそのように動作しませんで、困っています。 javascript:alert(document.parentWindow.clipboardData.setData("text", document.body.innerHTML)?'コピー完了':'false'); 上記ので駄目だったので、以下のスクリプトも試しましたが、駄目でした。 javascript:alert(document.parentWindow.clipboardData.setData("text", document.getElementsByTagName('html')[0].innerHTML)?'コピー完了':'false'); 上記スクリプトでは<HEAD>~</BODY>までの間しかコピーされず(その前後の<script >関連などがコピーされません)、また、改行やインデントなども消去されてしまっています。 コピーしたデータをPHPのプログラムでデータとして処理しているため、IEのソースを表示でメモ帳で開いたデータと全く同じ様式にしてコピーしたいのですが…。 詳しい方がおられましたら、どうかよろしくお願い致します。

  • JavaScriptのinnerHTMLの挙動について

    下で"JavaScript内からJavaScriptを書き出したいのですが"で質問したものですが,ソースコードを簡単にして再質問したいと思います. ソースは以下のようにし,divタグのところにinnerHTMLで文字"test"とJavaScriptでアラートを表示させるものです.表示してみたところ,"test"は表示されるのですが,アラートは出てきません. これはinnerHTMLではHTMLのタグは評価されるが,JavaScriptは評価されない,ということなんでしょうか.JavaScriptのこのような仕様は調べにくいので困っています.回答宜しくお願いします. <html><head><title></title> <SCRIPT type="text/javascript"> <!-- var str='<font color="blue">test</font><script type="text/javascript">alert(123);</script>'; function gogo(){ document.all("here").innerHTML = str; } //--> </SCRIPT> </head><body> <div id="here" style="position:absolute;width:600px;left:0px;top:0px;"></div> <SCRIPT type="text/javascript"> <!-- gogo(); //--> </SCRIPT></body></html>

  • JavaScript 文字列の取得方法

    JavaScriptで動的に生成したテーブル内のノードにある文字列を取得しようとしています。 IEだと下記の方法で取得できます。 var lineTitle = document.getElementById("title"); var lineTitleStr = lineTitle.outerText; しかし、FirefoxだとouterTextをサポートしていないので取得できません。 outerTextをinnerHTMLやvalueとして試しましたが、取得できませんでした。 一番良いのは、IEとFirefoxのどちらでも取得できる方法を教えて頂く事ですが、Firefoxで取得できる方法を教えて頂いても助かります 。 大変困っています。どうぞ、宜しくお願いします。

  • iframeのソースを取得

    iframeのsrcのソースを取得する方法を教えて下さい。 下のソースのcld.document.sourceの所が知りたいです。 body.outerHTMLでbodyの中なら得られますがそうではなくて、<html>から</html>を取得して、それを加工して表示しようというものです。 <iframe id=cld src=cld.html></iframe> <script language="JavaScript"> cldsource = cld.document.source; if(cldsource.substr(... ... </script>

  • Ajax.Requestで取得したHTMLソースから'href'の値を

    Ajax.Requestで取得したHTMLソースから'href'の値を取得する方法について Javascriptにて取得した別ページのHTMLタグから 必要な部分のみ値を取得し、配列に格納することは可能でしょうか? 以下Javascript ------ var url = "http://test/index.htm"; new Ajax.Request( url, { "method":"get", asynchronous:false, onComplete: function(request) { html = request.responseText; } } ); alert(html); ------ 以下"http://test/index.htm"のHTMLタグ ------ <html> <head> </head> <body> <a href='http://test/index2.htm'>index2</a> <a href='http://test/index3.htm'>index3</a> <div>index4</div> </body> </html> ------ 上記で"http://test/index.htm"のHTMLタグの全てを取得して出力することはできたのですが、 "href"の"http://test/index2.htm" "href"の"http://test/index3.htm"のみ配列に格納したいのです。 よろしくお願いいたします。

    • ベストアンサー
    • AJAX
  • Safariで<iframe>のinnerHTMLを取得する方法

    MacのブラウザSafariで <iframe id="iframe1" src="test.txt" style="display:none" width="1" height="1"></iframe> で読み込んだtest.txtの内容が取得できなくて困っています。 ちなみにWindowsのIEとMacのFireFoxでは下記のようなかんじで取得できています。 IEの場合 var text = this.iframe1.document.body.innerHTML; FireFoxの場合 var text = document.getElementById("iframe1").contentDocument.body.innerHTML; MacのSafariでは上記どちらの方法でも取得できませんでした。 他にも色々調べて試してみたのですがやはり上手くいきません。 <iframe>タグ内のstyle指定をなくしてみたらiframeにテキストの内容は表示されているのであとは取得できればいいのですが。。 JavaScriptは初心者なので記述等不可思議かもしれません。 あわせてご教授いただけたらと思います。