我正在使用console.log(...)
进行调试。然而,控制台也从iframe获取消息(我在我的HTML代码中使用iframe)。我怎样才能看到我发送的日志,而不是来自iframe的日志?如何在控制台中隐藏来自iframe的消息
15
A
回答
1
我为客户端写了一个记录器服务。我使用了一种模式,可以过滤出由我的脚本而不是iframe生成的日志/错误等。
function logger(){
var pattern="PC:";
var info=function(){
Array.prototype.unshift.apply(arguments, [pattern]);
console.info.apply(console, arguments);
}
var log=function(){
Array.prototype.unshift.apply(arguments, [pattern]);
console.log.apply(console, arguments);
}
var warning=function(){
Array.prototype.unshift.apply(arguments, [pattern]);
console.warn.apply(console, arguments);
}
var debug=function(){
Array.prototype.unshift.apply(arguments, [pattern]);
console.debug.apply(console, arguments);
}
var error=function(){
Array.prototype.unshift.apply(arguments, [pattern]);
console.error.apply(console, arguments);
}
return {
info:info,
log:log,
warning:warning,
debug:debug,
error:error
}
}
这里的“PC”是模式
0
1
您可以添加类似“?nofrm = 1”的网页的脚本标签的src属性要查看日志。然后在Chrome中,您可以在筛选器中键入“nofrm”以仅从它们的脚本获取日志。如果您还想记录内嵌脚本,请在URL中添加“?nofrm = 1”。
2
如何在JavaScript中添加片段来捕获由iFrame引发的错误?
您可以用您的iFrame正在抛出的错误代替[IFRAME ERROR MESSAGE]
。如果片段从捕获的iFrame一个错误,它会做什么,否则,它将输出错误控制台:
window.onerror = function (msg, url, line) {
if (msg == "[IFRAME ERROR MESSAGE]") {
return true
}
else {
//do nothing
}
}
确保尽早把这个代码在您的脚本。
工作示例(保存为test.html的,并在Chrome中打开):
<button onclick="myfunction()">x is not defined</button>
<button onclick="myfunction2()">y is not defined</button>
<script>
window.onerror = function (msg, url, line) {
if (msg == "Uncaught ReferenceError: x is not defined") {
return true
}
else {
//do nothing
}
}
function myfunction(){
console.log(x);
}
function myfunction2(){
console.log(y);
}
</script>
在这个例子中,你会看到,没有错误会当您单击第一个按钮时在控制台中输出,但在单击第二个按钮时将看到错误。
相关问题
- 1. 如何在控制台中隐藏日志消息的来源?
- 2. 如何在Angular JS中隐藏控制台错误消息?
- 3. log4j:如何仅在控制台中记录来自com.foo。*的消息?
- 4. 如何在Linux中记录来自控制台的输出消息?
- 5. 如何自动隐藏消息框?
- 6. 如何隐藏控制台窗口
- 7. 如何隐藏控制台窗口?
- 8. 如何隐藏红隼控制台?
- 9. 如何隐藏cmd.exe控制台?
- 10. 按钮在c#控制台应用程序中隐藏取消隐藏
- 11. 在eclipse中隐藏控制台
- 12. 运行控制台隐藏
- 13. 隐藏控制台窗口
- 14. 隐藏控制台窗口
- 15. Boost :: windows隐藏控制台
- 16. 显示来自隐藏的iframe的成功/失败消息提交
- 17. 如何隐藏pander()中的消息?
- 18. 显示来自javascript控制台的消息
- 19. 隐藏来自iframe的文本
- 20. 在控制台中打印HL7消息
- 21. 关闭控制台消息
- 22. 消息控制台Java
- 23. UIImagePickerController控制台消息
- 24. MongoMapper控制台消息
- 25. CoreUI控制台消息
- 26. 如何在PhantomJS + Selenium中隐藏控制台?
- 27. 如何在Rails控制台中隐藏数据库输出?
- 28. 如何在Windows中隐藏Cygwin Python控制台窗口?
- 29. 在控制台中隐藏AJAX控制器调用
- 30. 控制台中的SimpleSchema.clean消息
你正在寻找这可能是类似于:http://superuser.com/questions/394213/how-can-i-suppress- chrome-extension-output-from-web-inspectors-console-log –
可能的解决方法是使用'console.info'或'console.debug'代替,然后过滤消息类型。 – Kruga
谢谢@Kruga。它不是确切的解决方案,但它的作品适合我。另一个解决方法是预先安排所有具有模式的“控制台”日志,然后使用正则表达式来过滤它们 – rramakrishnaa