如何在用户脚本中不使用警报来记录信息
How can I log information without using alert in userscripts
我有一个用户脚本,它跟踪网页的JavaScript中所有动态创建的标签。 这里的问题是目前我正在使用警报框来显示输出。alert() 的问题在于它可能非常突兀。对于每个警报,您需要单击"确定"按钮继续,这会浪费您的时间。所以我想要一种替代方法,例如警报框以外的日志文件。我该怎么做。
我只能使用控制台.log
我会使用某种静态放置在您的页面上的控制台元素,如有必要,可以将其隐藏。看到这个 jsFiddle.
.HTML:
<div id="console">
<div class="header">
Console
<span class="expand" onclick="toggleConsole();">+</span>
</div>
<div class="content" style="display: none;"></div>
</div>
.CSS:
#console {
position: fixed;
right: 0px;
bottom: 0px;
width: 300px;
border: solid 1px #dddddd;
}
#console .header {
background-color: #ededed;
border: solid 1px #dddddd;
}
#console .header .expand {
padding-right: 5px;
float: right;
cursor: pointer;
}
#console .content {
overflow: auto;
background-color: #F9F9F0;
width: 100%;
height: 180px;
}
Javascript:
function log(text) {
var consoleContent = document.getElementById('console')
.getElementsByClassName('content')[0];
var line = document.createElement('div');
line.className = 'consoleLine';
line.innerHTML = text;
consoleContent.appendChild(line);
}
function toggleConsole() {
var content = document.getElementById('console')
.getElementsByClassName('content')[0];
if (content.style.display === "none") {
content.style.display = "block";
document.getElementById('console')
.getElementsByClassName('expand')[0].innerHTML = "-";
} else {
content.style.display = "none";
document.getElementById('console')
.getElementsByClassName('expand')[0].innerHTML = "+";
}
}
document.onload = function() {
document.getElementById('console')
.getElementsByClassName('expand')[0].onclick = toggleConsole;
};
使用log("some text");
输出到您的控制台!
将 Firefox 附加组件安装到您的 Mozilla(如果您正在使用)中,然后使用以下代码:
console.log("test"+your_variable);
因此,上面的代码将在控制台中显示所有日志。如果 IE 按 F12 并检查控制台。
如果普通用户应该能够看到它,那么使用控制台不是一种非常用户友好的方式。
在网页上定义一个空间(<div>
可能很方便),你想要信息的位置,然后使用 javascript(或 jQuery)将消息添加到该空间以修改 DOM:
.HTML:
<div id='logmessages'>Log messages:</div>
JavaScript
function log(yourMsg) {
document.getElementByID('logmessages').innerHTML() += yourMsg;
}
允许用户使用按钮或其他方式显示/隐藏div 可能很友好。
在页面的顶部、底部或角落创建一个固定的div,设置宽度/高度并自动溢出,然后在其中插入日志条目。
相关文章:
- 访问布局信息是否也会导致浏览器重排
- 使用Dnamics CRM 2011中的JavaScript读取子网格的所有记录,而不考虑活动页面
- 定义完全独立的样式信息
- 使用html2canvas获取基本信息
- JS表单提交"无法使用Chrome数据保护程序加载此页面.尝试重新加载页面.调试信息:POST CISmtuK
- DataTable没有显示分页按钮和记录信息-JQuery
- 如何在调用AJAX时记录或捕获信息和错误
- 通过单击“MVC 获取错误”中的“下一步”按钮 asp.net 在同一详细信息页面上显示记录
- 如何安全地记录用户统计信息
- 如何在用户脚本中不使用警报来记录信息
- 解析中未记录信息
- 脚本访问未记录在导航历史记录中,会话信息未正确存储
- 我尝试使用R Shiny部署一个应用程序,但网页立即退出,并说诊断信息已记录到我的JavaScript控制台
- 如何使文本框自动完成结果选择直接导航到记录详细信息
- 在Javascript中直接获取Lotus Notes中的视图信息/记录
- 多维数组-用于获取记录信息的javascript while循环
- nodecron与nodeschedule在创建heroku服务器以记录统计信息时的比较
- 如何在mvc 4中显示任何选定记录的详细信息
- 用于永久记录信息的包
- 如何使SharePoint中的按钮显示有关记录的信息?