2009-07-14 84 views
0

這是用例:用戶單擊一個鏈接打開一個窗口,顯示文本日誌的內容。很簡單。但是有什麼方法可以使用POST,將文本日誌打開到某個位置(即搜索帖子中給出的特定時間戳,並在該特定位置顯示該文件)?HTML鏈接到網頁中的某個點 - 輕微扭曲

(假設我不能在文本日誌中放置html標籤 - 這是一個原始文件)。

模板日誌:

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

所以我想在頁面加載特定的時間戳。

感謝,
邁克爾

+0

日誌文件是一個原始的`.txt`文件嗎? – 2009-07-14 21:03:12

+0

這是一個。在chrome/firefox/ie中很好地顯示的日誌文件(文本不會混淆在一起 – Dirk 2009-07-14 21:09:24

+0

您可以爲我們提供一小部分日誌文件供下載和查看,也許有工具可以解析它並在表格中顯示方式與搜索功能 – balexandre 2009-07-14 21:13:59

回答

2

由於您無法修改該文件,因此唯一的方法是將其包裝在<frame>或中,並驅動從相鄰/包含頁面中的JavaScript進行搜索和滾動。

下面是一個例子,你可以在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> 

網上試試我測試過,在IE7和FF3;如果它沒有編輯地在別處工作,我會感到驚訝,但你永遠不知道你的運氣!

顯然在你的情況下,你會以編程方式驅動滾動而不是通過<input>框,但你可以看到它如何爲你工作。

0

如果你可以把周圍的文件的文本,一些標籤,那麼你也許可以插入一些JavaScript,將它裝載後滾動窗口。

0

Yes,但通過查詢字符串傳遞參數將會變得簡單很多。

要滾動到文本文件中的某個位置,您將需要用戶javascript(在我看來過於複雜)或添加html anchor tag

如果您打算在窗口中發佈原始文本日誌,您也會遇到一些困難,因爲HTML無法識別換行符並將日誌一起運行到一個Blob中。

3

爲什麼你不能只有一個php或perl或simlar腳本,當場處理日誌文件,並堅持在html錨點並稱它爲一天?

在現場處理時還可以顯示一個修剪下來的日誌副本,這些副本只與相關事件周圍的時間段相關。

0

保留已翻譯爲HTML的日誌文件的「活動拷貝」 - 每次修改原始文件(或者簡單地每隔X秒),檢查並追加最新的行與應用於HTML的HTML錨點版。