Automatically scroll down when new content is added to Kagi Assistant
当前为
// ==UserScript==
// @name Kagi Assistant Auto-Scroll
// @namespace http://tampermonkey.net/
// @version 0.1
// @description Automatically scroll down when new content is added to Kagi Assistant
// @author You
// @match *://kagi.com/assistant*
// @grant none
// @license MIT
// ==/UserScript==
(function() {
'use strict';
// The main container that holds the chat messages
const targetSelector = '.main-center-box';
// Function to scroll to bottom
function scrollToBottom() {
const container = document.querySelector(targetSelector);
if (container) {
container.scrollTop = container.scrollHeight;
}
}
// Set up a mutation observer to watch for changes
const observer = new MutationObserver((mutations) => {
let shouldScroll = false;
// Check if content was added
mutations.forEach((mutation) => {
if (mutation.type === 'childList' && mutation.addedNodes.length > 0) {
shouldScroll = true;
} else if (mutation.type === 'characterData') {
shouldScroll = true;
}
});
if (shouldScroll) {
scrollToBottom();
}
});
// Function to initialize the observer when the target element exists
function initObserver() {
const target = document.querySelector(targetSelector);
if (target) {
observer.observe(target, {
childList: true,
subtree: true,
characterData: true
});
console.log('Kagi Assistant Auto-Scroll: Observer initialized');
// Initial scroll to bottom
scrollToBottom();
} else {
// If target doesn't exist yet, try again shortly
setTimeout(initObserver, 1000);
}
}
// Start the initialization process
initObserver();
// Also scroll on window resize
window.addEventListener('resize', scrollToBottom);
})();