- ベストアンサー
javascriptでブラウザに表示されている文字列を取得したい
javascriptでブラウザに表示されている文字列を取得したい 宜しくお願いします。 javascriptを使って、現在表示されているブラウザの文字列を取得する方法はありますか? ソースから取得したり、出来そうな気がするのですが、検索しても方法が見つかりませんでした。 もしくは、ブラウザのセキュリティで出来ないのでしょうか?
- nikuq
- お礼率75% (477/631)
- JavaScript
- 回答数3
- ありがとう数7
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
続き(body部以下) <body> <h2>Iframe Contents Text Get</h2> <p> <span style="font-weight:bold;">URL:</span><input type="text" id="url" style="width:70%" value="/index.htm"> <button onclick="frame_load();">ロード</button> </p> <hr> <iframe id="target_frame" name="target_frame" src="/index.htm" width="640px" height="800px" style="float:left;"></iframe> <button onclick="get_text();">テキスト抽出</button> <button onclick="result_clear();">クリア</button> <p style="text-align:center;"> <textarea id="result" cols="15" rows="30"></textarea> </p> </body> </html> ※レイアウトが気にいらなきゃ適時修正してね ※外部サイトのHTMLの解析は、サーバープログラムが無いとだめよ。
その他の回答 (2)
- yyr446
- ベストアンサー率65% (870/1330)
IFRAMEにロードしたHTMLのテキストノードを抽出して、TEXTAREAに 書き出すサンプルです。これだけでは、あまり使い道が無いような... ※display:none;とかvisibility:hidden;のテキストも拾っているので、 もう一工夫かな。 サンプル(全角空白は半角空白になおして使いましょう) <!DOCTYPE html> <html lang="ja"> <head> <meta charset="UTF-8"> <title>Iframe Contents Text Get</title> <script type="text/javascript"> <!-- function TextSearch(node){ this.node=node; this.result=[]; this.texts=[]; (function(node,result){ for(var elm=node;elm;elm=elm.nextSibling){ if(elm.nodeType == 3){ result.push(elm.parentNode); }else{ if(elm.hasChildNodes()) arguments.callee(elm.firstChild,result); } } })(this.node,this.result); this.text=function(){ this.texts.length=0; for(var i=0;i<this.result.length;i++){ if(this.result[i].nodeName!="SCRIPT"){ var textelm=this.result[i].firstChild; while(textelm.nodeValue==null){textelm=textelm.nextSibling;} this.texts.push(textelm); } } } this.finded_elm=this.result; this.text_elm=this.texts; } function get_text(){ var iframe=document.getElementById("target_frame"); var content=iframe.contentDocument.body; var result_str=""; document.getElementById("result").value=""; var text_search=new TextSearch(content); var target_length=text_search.finded_elm.length; if(target_length>0){ text_search.text(); var elm=(text_search.text_elm.length==0)?text_search.finded_elm:text_search.text_elm; for(var i=0;i<elm.length;i++){ result_str += elm[i].nodeValue.replace(/^[\s, ]+/gm,""); } document.getElementById("result").value = result_str; } } function frame_load(){ var url=document.getElementById("url").value; target_frame.location.href=url; } function result_clear(){ document.getElementById("result").value=''; } // --> </script> </head> body部へ続く
- yyr446
- ベストアンサー率65% (870/1330)
「現在表示されているブラウザの文字列」 の意味ですが、それは画像とかに乗っている文字は除いて、改行とか回り込みとか のレイアウトも無視して、スタイル属性とかで、表示を抑止している部分は除いて、 とにかくテキストノードの文字列を表示するという事でしょうか?
関連するQ&A
- ajaxでサーバより取得したHTML断片文字列をブラウザに正しく表示させたい
質問1 ajaxを利用してWebサーバから「<B>hoge</B>」のような文字列を取得することはできたのですが、それをブラウザ上に太字のhogeとして表示させたいのですが、ブラウザでタグが解釈されず「<B>hoge</B>」のまま表示されます。サーバから取得したHTML断片文字列をブラウザに解釈させて表示させるにはどうしたらよいのでしょうか。 質問2 appendChild()を繰り返し実行すると、既に取得済みの文字列に対して、新たに取得した文字列がアペンドされます。アペンドさせずにボタン押下で取得した文字列だけを画面に表示させるにはどうしたらよいのでしょうか? よろしくお願いいたします。 JavaScript var disp = document.getElementById('disp'); disp.appendChild(document.createTextNode(xmlhttp.responseText)); HTML出力位置 <div id="disp"></div>
- ベストアンサー
- JavaScript
- javascriptでtextareaの文字列を取得したいです。
javascriptでtextareaの文字列を取得したいです。 textareaで入力された文字列から半角括弧でくくられた文字列を、半角括弧付きで取得したいです。 例 あいうえお かき(くけ)こ さしすせそ この場合、(くけ)が取得したい文字列です。 正規表現を使えば取得できそうなのですが、 詳しく分からないので教えてください。 よろしくお願いいたします。
- ベストアンサー
- JavaScript
- javascriptで表示する文字列をhtmlの引用タグで表示できる?
javascript超初心者です。 javascriptの文字列に格納された文字列をdocument.writeで表示する時に、引用されたもの、として表示したいです。htmlですと、<blockquote>などで囲むと思うのですが、javascriptを使った場合、どういった方法があるでしょうか? よろしくお願いします。
- ベストアンサー
- JavaScript
- javascriptでクエリ文字列を取得できますか?
javascriptでURLの末尾に付与した?以降の文字列、いわゆる"クエリ文字列"を取得する事は出来ますか? 出来る場合、構文を教えて下さい。
- ベストアンサー
- JavaScript
- javascriptで要素の文字列の取得方法
現在、javascriptとgreasemonkeyを勉強中なのですが、以下のソースでp要素の文字列?にある一部分を取り出して、 他サイトに繋がるリンクを作成したいと思っています。 XPathを使用して、タグ自体は取得できたのですが、サンプルソースの「ほげほげ」部分はどうしたら、取得できるのでしょうか? XPathを使用しなくても取得できるでしょうか? また、「ほげほげ」から○○部分を取り出したいのですが、取り出したい物はページごとに違うのでどのようなコードを書けばいいか分かりません。 しかし前後の文字列は一定です。 サンプルソース <html> <body> <div><p>ほげほげ○○</p></div> : : ほげほげ部分は、実際はクエリにたいに「search?p=hogehoge&type=&id=○○」となっています。 説明不足でわかりにくいとは思いますが、ご教授よろしくお願いします。
- ベストアンサー
- JavaScript
- javascriptでサイトの文字列の取得方法
今javascriptをやっていて別フレームのサイトから文字列を取得できないか試しています プログラムの参考にしたサイトは、ここ http://fayn.s59.xrea.com/x/tips/javascript/js1.php なんですが、右フレームと左フレームがあって、右には文字があり、左にはボタンがあります。 右で文字を適当にドラッグして選択しておきます、そのまま、左にあるボタンをクリックすると選択した文字列を取得できるという仕組みです。 これを右フレームの内容をサンプルではなく、一般的なwikipediaとかにすると、文字列の取得が出来なくなってしまうのです。 これはプログラム上制限されているのでしょうか?それとも出来る方法はあるのでしょうか もし、お分かりになるのであるならば教えて欲しいです よろしくお願いします
- ベストアンサー
- JavaScript
- JavaScript 文字列の取得方法
JavaScriptで動的に生成したテーブル内のノードにある文字列を取得しようとしています。 IEだと下記の方法で取得できます。 var lineTitle = document.getElementById("title"); var lineTitleStr = lineTitle.outerText; しかし、FirefoxだとouterTextをサポートしていないので取得できません。 outerTextをinnerHTMLやvalueとして試しましたが、取得できませんでした。 一番良いのは、IEとFirefoxのどちらでも取得できる方法を教えて頂く事ですが、Firefoxで取得できる方法を教えて頂いても助かります 。 大変困っています。どうぞ、宜しくお願いします。
- ベストアンサー
- JavaScript
- javascriptでタイトルタグ取得後の文字の変換について
はじめまして。 javascriptでタイトルタグを取得し、そこから特定の文字を除いて表示するということをやりたいのですが、たとえば次のような具合です。 「AABBCC」というタイトルがあったとしら、 1.javascriptで「AABBCC」を取得 2.javascriptで「AA」という文字列を排除し「BBCC」に 3.htmlのとある箇所に「BBCC」を書き出し という流れです。 知識をお持ちの方、ご教授いただけますでしょうか。 よろしくお願いします。
- ベストアンサー
- JavaScript
- ブラウザなどで入力された文字列を取得する方法
ブラウザやワードのようなアプリケーションで入力された文字列(特に漢字)をプログラムで取得する方法を探しています。 プログラム内で用意したテキストボックスに入力された文字列を取得するサンプルコードはそこかしこで見かけるのですが、 他のアプリケーションで入力した文字列を取得するような方法がどうしてもわかりません 文字列を取得するImeAPIの中のImmGetCompositionStringの存在や アクティブウインドウのハンドルを取得するGetActiveWindowの存在は知っているのですが この2つを組み合わせて出来るものなのでしょうか? ほかにも「フック」を使うという方法も考えましたがIMEで入力が確定した文字列を 「フック」してくることは可能なのでしょうか? 「これなら取得できる」といった良い方法があれば教えていただきたいです。 長文になりましたがなにとぞよろしくお願いいたします。 開発環境:windows7 64bit 開発言語:できればC言語 ↓テキストボックスに入力された文字列を取得するサンプルコード↓ http://shinshu.fm/MHz/95.83/archives/0000025041.html#comments http://www.atmarkit.co.jp/fdotnet/dotnettips/875imeyomi/imeyomi.html ↓IME APIの関数リスト↓ http://msdn.microsoft.com/ja-jp/library/cc422019.aspx
- ベストアンサー
- その他(プログラミング・開発)
- 画面から文字列を取得してその文字列の位置を知る方法
こんばんは。 質問させてください。 画面から文字列を選択して、取得します。(これは出来ました。) その文字列がHTMLソースファイルの どの位置のものか取得する方法はありますでしょうか? ○番目の「こんばんは」を画面から取得した時に 同じ文字列があっても、○番目の位置が取得出来る方法なのですが・・・ ---- <HTML><HEAD></HEAD> <BODY> おはよう、こんばんは。 さようなら、ありがとう。 しつれいしました、おはよう、こんばんは。 こんばんは、さようなら。 さようなら </BODY> </HTML> ----
- 締切済み
- JavaScript
補足
ありがとうございます。 その通りです。タグもスタイルシートも必要なく、ただ、画面に表示されている文字列を取得できればと考えております。