我正在使用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. Shell脚本隐藏控制台消息?
- 3. 隐藏XCTest控制台消息
- 4. 如何在Angular JS中隐藏控制台错误消息?
- 5. 在控制台窗口中隐藏警告消息
- 6. 隐藏控制台日志中的调试消息
- 7. 来自VirtualPathProvider的隐藏错误消息
- 8. 从java控制台隐藏信息
- 9. log4j:如何仅在控制台中记录来自com.foo。*的消息?
- 10. 如何在Linux中记录来自控制台的输出消息?
- 11. 如何自动隐藏消息框?
- 12. 如何隐藏控制台窗口?
- 13. 如何隐藏cmd.exe控制台?
- 14. 如何隐藏控制台窗口
- 15. 如何隐藏红隼控制台?
- 16. 如何隐藏控制台窗口?
- 17. 如何在MVC中显示来自控制器的jquery消息
- 18. 在eclipse中隐藏控制台
- 19. 按钮在c#控制台应用程序中隐藏取消隐藏
- 20. 隐藏控制台窗口
- 21. 隐藏控制台窗口
- 22. Boost :: windows隐藏控制台
- 23. 运行控制台隐藏
- 24. 显示来自隐藏的iframe的成功/失败消息提交
- 25. 如何禁用emacs控制台消息
- 26. 如何禁用pywebkit控制台消息?
- 27. 如何禁用ChromeDriver控制台消息?
- 28. 如何隐藏pander()中的消息?
- 29. 显示来自javascript控制台的消息
- 30. 如何在gnome shell的libnotify中自动隐藏错误消息?
你正在寻找这可能是类似于:http://superuser.com/questions/394213/how-can-i-suppress- chrome-extension-output-from-web-inspectors-console-log –
可能的解决方法是使用'console.info'或'console.debug'代替,然后过滤消息类型。 – Kruga
谢谢@Kruga。它不是确切的解决方案,但它的作品适合我。另一个解决方法是预先安排所有具有模式的“控制台”日志,然后使用正则表达式来过滤它们 – rramakrishnaa