No.2
- 回答日時:
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部へ続く
No.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の解析は、サーバープログラムが無いとだめよ。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- JavaScript 空白で入力フォームのボタンをクリックしたら、ブラウザの上部からjavascriptで 表示されるアラ 1 2022/05/20 11:16
- JavaScript フォームが空欄の時にフォームの外をクリックすると、エラーが出るコードを調べています。 1 2023/06/25 11:51
- Visual Basic(VBA) Selenium.ChromeDriverの使い方について 7 2022/09/22 06:43
- Windows 10 パソコン初期化の件です 2 2022/06/05 11:05
- JavaScript ブラウザの横幅に応じてとある画像(e.jpg)を画面いっぱいに表示できるようにしたいです。(写真の横 1 2022/10/06 21:17
- JavaScript セレクトボックスで配列を呼び出したい。 1 2022/07/08 20:14
- JavaScript HTMLでJavaScriptを使用してプログラムを作ります。 入力されたパスワードを取得して、パス 2 2022/10/18 01:05
- Excel(エクセル) エクセルにおいてセル内の文字を出来るだけ大きく表示する方法を教えてください。 4 2022/07/30 08:08
- その他(プログラミング・Web制作) 【GAS】Gmail本文をブラウザ表示された状態でPDFにしたいです 1 2022/12/12 09:54
- Excel(エクセル) PHPプログラムをエクセルに張り付けると検索ボックスがでてくる! 3 2022/05/08 07:10
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
JavaScriptでiframeの内容を「...
-
function の return 値を表示し...
-
onloadで2つの関数を設定したい
-
AjaxでXMLの要素が取得できない
-
html javascript 作った配列を...
-
乱数を一定時間毎に表示させた...
-
iframeの中から親ページをスム...
-
ひとつのHTMLファイル内にcanva...
-
IEの一番下の欄にメッセージ...
-
getElementsByNameで要素が取得...
-
月ごとに背景色を変える
-
<a href="#" …>の意味を教えて...
-
別ファイルのfunctionの読み込み方
-
JavascriptとJqueryを混在し記述
-
Dreamweaver で 外部JSを読み込...
-
pythonのWebスクレイピングでfi...
-
条件分岐で、読み込む外部スク...
-
Safariで<iframe>のinnerHTMLを...
-
bodyにidをつける理由は何ですか?
-
リンクをクリックすると文字が...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
getElementsByNameで要素が取得...
-
JavaScriptでiframeの内容を「...
-
キーを押している間の時間を計...
-
SCRIPT5007: 未定義または NULL...
-
JavaScript でキーを送る
-
フォーカス移動抑止について
-
リンク移動先のURLを取得
-
function の return 値を表示し...
-
初心者javascript ウィンドウサ...
-
ボタンのID名を取得するには?
-
フレームサイズの変更について
-
iframeの中から親ページをスム...
-
乱数を一定時間毎に表示させた...
-
ボタンを押してテキストエリア...
-
出荷予定日を表示するJavaスク...
-
XMLHTTPRequestでstatusが0に
-
自動ジャンプでフォームデータ...
-
ページ全体を検索して特定文字...
-
JavaScriptでの西暦下2桁での表...
-
idHOGEで取得したinnerText(数...
おすすめ情報