diff options
| author | Mistivia <i@mistivia.com> | 2025-11-04 22:34:33 +0800 |
|---|---|---|
| committer | Mistivia <i@mistivia.com> | 2025-11-04 22:34:33 +0800 |
| commit | 6c66b7c72013f8e335d93b28e743101883f30bb9 (patch) | |
| tree | 38d257a068361bb31456f5cd85bb69e4b4538783 /irclog | |
| parent | cb63d6de3d3e8b747bf1b178190a183b9ab4a506 (diff) | |
add scroll to log line
Diffstat (limited to 'irclog')
| -rw-r--r-- | irclog/search/index.html | 18 | ||||
| -rw-r--r-- | irclog/search/search1.js (renamed from irclog/search/search.js) | 13 | ||||
| -rw-r--r-- | irclog/view/index.html | 2 | ||||
| -rw-r--r-- | irclog/view/view4.js (renamed from irclog/view/view1.js) | 23 |
4 files changed, 51 insertions, 5 deletions
diff --git a/irclog/search/index.html b/irclog/search/index.html index 066b30d..a31414b 100644 --- a/irclog/search/index.html +++ b/irclog/search/index.html @@ -45,6 +45,22 @@ color: blue; text-decoration: underline; } + .logline { + color: black; + text-decoration: none; + } + .logline:link { + color: black; + text-decoration: none; + } + .logline:hover { + color: black; + text-decoration: underline; + } + .logline:visited { + color: black; + text-decoration: none; + } </style> </head> <body> @@ -57,6 +73,6 @@ <br> </div> <div id="log-container"></div> - <script src="./search.js"></script> + <script src="./search1.js"></script> </body> </html> diff --git a/irclog/search/search.js b/irclog/search/search1.js index 9a574d6..cf59f90 100644 --- a/irclog/search/search.js +++ b/irclog/search/search1.js @@ -59,9 +59,11 @@ function aggrLog(data) { month = date.substring(5, 7); day = date.substring(8, 10); url = '../view/?chan=main&y=' + year + '&m=' + month + '&d=' + day; - ret = ret + '\n=== <a href=' + url + ' target=\'_blank\'>' + date + '</a> ===' + '\n'; + ret = ret + '\n=== ' + date + ' ===' + '\n'; logsByDate[date].forEach(log => { - ret = ret + log + '\n'; + let time = log.substring(1,9); + let logurl = url + '#' + time; + ret = ret + '<a class="logline" target="_blank" href="' + logurl + '">' + log + '</a>\n'; }); }); return ret; @@ -86,7 +88,12 @@ function loadLog() { return response.text(); }) .then(text => { - logContainer.innerHTML = `<pre>${logProcess(text.trim())}</pre>`; + try { + logContainer.innerHTML = `<pre>${logProcess(text.trim())}</pre>`; + } catch (e) { + console.log(e); + } + }) .catch(error => { console.error('Fetch error:', error); diff --git a/irclog/view/index.html b/irclog/view/index.html index 3041286..490e9c3 100644 --- a/irclog/view/index.html +++ b/irclog/view/index.html @@ -57,6 +57,6 @@ <div id="log-container"></div> <button onclick="setPreviousDay()">上一天</button> <button onclick="setNextDay()">下一天</button> - <script src="./view1.js"></script> + <script src="./view4.js"></script> </body> </html> diff --git a/irclog/view/view1.js b/irclog/view/view4.js index 567ec23..1863f64 100644 --- a/irclog/view/view1.js +++ b/irclog/view/view4.js @@ -7,6 +7,7 @@ let chan = urlParams.get('chan'); let year = urlParams.get('y'); let month = urlParams.get('m'); let day = urlParams.get('d'); +let hashtag = window.location.hash.substring(1); if (chan === 'main') { document.getElementById('searchlink').style.visibility = 'visible'; @@ -78,10 +79,28 @@ function linkify(text) { }); } +function insertTag(text) { + let res = ''; + let lines = text.split('\n'); + let scrollToInserted = false; + for (let line of lines) { + let time = line.substring(1, 9); + if (!scrollToInserted && time == hashtag && time !== '') { + res += '<span id="scrollTo"></span>'; + scrollToInserted = true; + res += '<span style="color:red;">' + line + '</span>\n'; + } else { + res += line + '\n'; + } + } + return res; +} + function logProcess(text) { text = ircAction(text); text = escapeHtml(text); text = linkify(text); + text = insertTag(text); return text; } @@ -96,6 +115,10 @@ function loadLog() { }) .then(text => { logContainer.innerHTML = `<pre>${logProcess(text)}</pre>`; + let scrollTo = document.getElementById('scrollTo'); + if (scrollTo) { + scrollTo.scrollIntoView(); + } }) .catch(error => { console.error('Fetch error:', error); |
