2009-07-14 11 views
0

ユースケース:ユーザがテキストログの内容を表示するウィンドウを開くリンクをクリックします。簡単に。しかし、POSTを使用して、そのテキストログを特定の場所に開く(つまり、投稿に与えられた特定のタイムスタンプを検索し、その特定の場所にファイルを表示する)方法がありますか?ウェブページ内の特定のポイントへのHTMLリンク - わずかなひねり

(テキストログの中にhtmlタグを置くことはできません。これは未処理ファイルです)。ログの

テンプレート:

+++ 2009/06/19 10:47:12.264 ACTION +++ 
+++ 2009/06/19 10:49:12.111 ACTION +++ 

は、だから私は、ページが特定のタイムスタンプをロードします。

おかげで、
マイケル

+0

ログファイルは未加工の '.txt'ファイルですか? –

+0

ですchrome/firefox /によく表示されるログファイル(テキストが混乱することはありません) – Dirk

+0

ダウンロードして表示するためにログファイルの一部を私たちに提供できますか?それを解析してテーブルに表示するツールがあります方法は、検索機能を使用します。 – balexandre

答えて

2

ファイルを変更することはできませんので、<frame>またはにファイルをラップし、隣接するページのJavaScriptから検索とスクロールを実行する方法があります。

は、ここでは、私はIE7とFF3でそれをテストしてみたhttp://entrian.com/so-container.html

<html><head><script> 
function go() { 
    // "line" is the <input> for which line to jump to; see the HTML. 
    var line = document.getElementById('line').value; 
    if (document.body.createTextRange) { // This is IE 
     var range = frames['log'].document.body.createTextRange(); 
     if (range.findText(line)) { 
      range.select(); // Scroll the match into view and highlight it. 
     } 
    } else { // Non-IE. Tested in Firefox; YMMV on other browsers. 
     frames['log'].find(line); // Scroll the match into view and highlight it. 
    } 
} 
</script></head><body> 
<input type='text' size='5' name='line' id='line' value='10'> 
<button onclick='go()'>Go</button><br> 
<iframe name='log' width='100' height='50' src='so-data.txt'> 
<!-- so-data.txt contains the numbers 01-20 on separate lines --> 
</body></html> 

でオンラインで試すことができ、例です。私はそれが編集なしで他のところで働いたら私は驚くだろうが、あなたはあなたの運を知らない!

明らかにあなたの場合は、<input>ボックスを使用するのではなく、プログラムでスクロールすることになりますが、それがどのように機能するかを見ることができます。

+0

には役立ちますが、テキストファイル内の特定の領域にスクロールする正確な方法はありません。フォントやフォントのサイズなどを変更し、それぞれ別の場所にスクロールします。 –

+0

マイケルは "ポストで与えられた特定のタイムスタンプを検索する"と述べています - JavaScriptはその検索を行い、ドキュメントの先頭までの距離を測定し、その場所にスクロールします。私は以前これを正確に行ってきました。 – RichieHindle

+0

詳細を教えていただけますか? – Dirk

0

あなたはファイルのテキストの周りにいくつかのタグを入れることができれば、あなたはおそらくそれをロードした後、ウィンドウをスクロールするだろういくつかのJavaScriptを挿入することができます。

0

Yesですが、クエリ文字列を使用してパラメータを渡す方がずっと簡単です。

テキストファイル内の特定の位置にスクロールするには、javascript(私の意見では複雑すぎる)を入力するか、html anchor tagを追加する必要があります。

生のテキストログをウィンドウに投稿する予定がある場合は、HTMLが改行を認識せずにログを1つのBLOBにまとめて実行するため、いくつかの問題が発生します。

+0

私のログファイルがhtmlで表示されたときにblobとして表示されないようです。 基本的には、この動作をエミュレートしたい:Webページの下部にある単語を検索すると、ブラウザはそのインスタンスにジャンプします。何がjavascriptでそれを行う方法ですか? – Dirk

+0

@マイケル:私の更新された答えは正確にそれを行う方法を示しています。 – RichieHindle

0

あなたは

window.open ('log.txt'); 
window.scrollTo (0, window.scrollMaxY); 

を試してみましたか? mozillaの参照から:https://developer.mozilla.org/en/DOM/window.scrollMaxY

+0

@ RichieHindleのコメントに対する私のコメントを参照してください。異なるユーザーが異なるフォントやフォントサイズなどを持つ可能性があるため、テキストファイル内の特定の場所にスクロールする正確な方法はありません。 –

3

なぜあなただ​​けのhtmlアンカーでは、PHPやPerlやスポットのログファイルを処理simlarスクリプト、およびスティックを持っており、一日それを呼び出すことはできませんか?

スポット処理を行うと、問題のイベントの周りのタイムパンにのみ関連するログのトリムダウンコピーを表示することもできます。

+0

大きなログファイルであり、多くのアンカーが存在します(各タイムスタンプはアンカー) – Dirk

+0

特定の場所に移動する場合は、その特定のアンカーを投げてください。または、タイムスタンプなどで1分/ 1時間に1度しかアンカーを使用しないでください。 – whatsisname

+0

ファイルをトリミングする際の問題は、明確な開始点と終了点がないことです。 私はログ内の特定のポイントを探していて、その前後のアクションをチェックして一連のアクションを見つけます。 – Dirk

0

元のファイルが変更されるたびに(または単にX秒ごとに)ログファイルの「生きたコピー」を保持し、HTMLにアンカーが適用された最新の行をチェックして追加しますバージョン。

関連する問題