首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >修改Log4Javascript的UI

修改Log4Javascript的UI
EN

Stack Overflow用户
提问于 2013-05-03 03:14:34
回答 2查看 535关注 0票数 3

我对log4javascript进行了设置,使其显示如下日志:

然而,我想去掉一些东西,相反,我希望UI如下所示:

如何做到这一点?我正在使用InPageAppender

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2013-05-03 06:33:17

我不确定是否有配置选项,但是this jsfiddle might get you started

HTML

这里有一个延迟的log.debug,用于检查隐藏工具栏是否不会破坏日志记录。

代码语言:javascript
复制
<script src="http://log4javascript.org/js/log4javascript.js"></script>
<script type="text/javascript">
    var log = log4javascript.getLogger("main");
    var appender = new log4javascript.InPageAppender();
    log.addAppender(appender);
    log.debug("This is a debugging message from the log4javascript in-page page");
    setTimeout(function() {
        log.debug("This is a debugging message from the log4javascript in-page page");
    }, 2000);
</script>

JS

此代码等待log4javascript load事件激发,然后隐藏工具栏。

代码语言:javascript
复制
function removeSwitchesContainers() {
    var iframes = document.querySelectorAll("iframe");
    iframes = Array.prototype.slice.call(iframes);
    iframes.filter(function (iframe) {
        return iframe.id && iframe.id.match(/log4javascript_\d+_\d+_InPageAppender_\d+/);
    });
    if (iframes.length < 1) {
        return;
    }
    var iframe = iframes[0];
    var sc = iframe.contentWindow.document.querySelectorAll("#switchesContainer");
    sc = Array.prototype.slice.call(sc);
    sc.forEach(function (switchesContainer) {
        switchesContainer.style.display = "none";
    });
}

log4javascript.addEventListener("load", removeSwitchesContainers);
票数 2
EN

Stack Overflow用户

发布于 2013-05-03 07:01:59

恐怕不是那么容易。log4javascript没有提供任何这样做的选项,而且log4javascript控制台被嵌入到iframe中,这使得定制CSS变得很困难。我将在log4javascript 2.0中为此添加一个配置选项。

您可以创建自己的简化附加器,但这需要一些工作。一种更简单的替代方法是使用附加器的load事件删除不需要的UI:

代码语言:javascript
复制
var appender = new log4javascript.InPageAppender();
appender.addEventListener("load", function() {
    // Find appender's iframe element
    var iframes = document.getElementsByTagName("iframe");
    for (var i = 0, len = iframes.length; i < len; ++i) {
        if (iframes[i].id.indexOf("_InPageAppender_") > -1) {
            var iframeDoc = iframes[i].contentDocument || iframes[i].contentWindow.document;
            iframeDoc.getElementById("switchesContainer").style.display = "none";
            iframeDoc.getElementById("commandLine").style.display = "none";
        }
    }
});
票数 5
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/16345975

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档