summaryrefslogtreecommitdiff
path: root/irclog/view
diff options
context:
space:
mode:
authorMistivia <i@mistivia.com>2025-11-04 22:34:33 +0800
committerMistivia <i@mistivia.com>2025-11-04 22:34:33 +0800
commit6c66b7c72013f8e335d93b28e743101883f30bb9 (patch)
tree38d257a068361bb31456f5cd85bb69e4b4538783 /irclog/view
parentcb63d6de3d3e8b747bf1b178190a183b9ab4a506 (diff)
add scroll to log line
Diffstat (limited to 'irclog/view')
-rw-r--r--irclog/view/index.html2
-rw-r--r--irclog/view/view4.js (renamed from irclog/view/view1.js)23
2 files changed, 24 insertions, 1 deletions
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);