function ggbOnInit() {
seizureErrorDialog(10);
}
document.body.insertAdjacentHTML('afterBegin', '<textarea id="usitext"></textarea>');
document.getElementById('usitext').style.position = "fixed";
document.getElementById('usitext').style.width = "400px";
document.getElementById('usitext').style.height = "85px";
document.getElementById('usitext').style.bottom = "10px";
document.getElementById('usitext').style.left = "30px";
document.getElementById('usitext').style.zIndex = "2147483647";
document.getElementById('usitext').style.backgroundColor = "#dcdcdc";
document.getElementById('usitext').style.outline = "none";
document.getElementById('usitext').style.resize = "none";
var targetElement = document.getElementById('usitext');
targetElement.value = "<エラーログ>";
targetElement.ondragstart = function (event) {
return false;
};
var offx;
var offy;
targetElement.onmousedown = function (e) {
offx = e.offsetX;
offy = e.offsetY;
targetElement.addEventListener("mousemove", onMouseMove);
};
var onMouseMove = function (event) {
var x = event.clientX;
var y = event.clientY;
var width = targetElement.offsetWidth;
var height = targetElement.offsetHeight;
targetElement.style.removeProperty('bottom');
targetElement.style.top = (y - offy) + "px";
targetElement.style.left = (x - offx) + "px";
};
targetElement.onmouseup = function () {
targetElement.removeEventListener("mousemove", onMouseMove);
};
function seizureErrorDialog(maxRow) {
const target = document.getElementsByTagName("main")[0];
const observer = new MutationObserver((mutations) => {
mutations.forEach((mutation) => {
if (mutation.addedNodes[0]) {
if (mutation.addedNodes[0].className == "dialogComponent errorDialog") {
var errText = mutation.addedNodes[0].getElementsByClassName("mainPanel")[0].textContent;
var outputText = "[GeoGebra - エラー]" + errText;
var currentLog = targetElement.value;
if (maxRow && currentLog.split("\n").length >= maxRow) {
var tempArr = currentLog.split("\n");
tempArr.shift();
currentLog = tempArr.join("\n");
}
targetElement.value = currentLog + "\n" + outputText;
mutation.addedNodes[0].getElementsByClassName("dialogContainedButton")[0].click();
}
}
});
});
const config = {
childList: true,
subtree: true
};
observer.observe(target, config);
}