HTML链接到网页中的某个点 - 轻微扭曲

时间:2009-07-14 20:52:23

标签: html search text

以下是用例:用户单击链接,该链接打开一个显示文本日志内容的窗口。很容易。但有没有办法使用POST,将文本日志打开到某个位置(即,搜索帖子中给出的特定时间戳,并在该特定位置显示该文件)?

(假设我不能在文本日志中放置html标签 - 它是一个原始文件)。

日志模板:

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

所以我希望页面加载特定的时间戳。

谢谢,
迈克尔

6 个答案:

答案 0 :(得分:3)

为什么你不能只拥有一个php或perl或simlar脚本来当场处理日志文件,并坚持使用html锚点并且每天调用它?

进行现场处理还可以显示日志的精简副本,该副本仅与相关事件的时间跨度相关。

答案 1 :(得分:2)

由于您无法修改文件,唯一的方法是将其包装在<frame><iframe>中,并驱动搜索和滚动邻近/包含页面中的JavaScript。< / p>

以下是一个示例,您可以在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>框驱动滚动,但您可以看到它对您有用。

答案 2 :(得分:0)

如果你可以在文件的文本周围添加一些标签,那么你可能会插入一些在加载后滚动窗口的javascript。

答案 3 :(得分:0)

Yes,但通过查询字符串传递参数会简单得多。

要滚动到文本文件中的某个位置,您需要使用javascript(我认为过于复杂)或添加html anchor tag

如果您计划在窗口中发布原始文本日志,您也会遇到一些困难,因为HTML无法识别换行符并将日志一起运行到一个blob中。

答案 4 :(得分:0)

你试过吗

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

?来自mozilla参考:https://developer.mozilla.org/en/DOM/window.scrollMaxY

答案 5 :(得分:0)

保留已翻译为HTML的日志文件的“活动副本” - 每次修改原始文件时(或每隔X秒),检查并附加应用于HTML版本的HTML锚点的最新行