Как скрыть сообщения в консоли, исходящие из iframes
Я использую console.log(...)
для целей отладки. Однако консоль также получает сообщения из iframes (я использую iframes в своем HTML-коде). Как я могу увидеть только журналы, которые я отправил, а не журналы, которые поступают из iframe?
Ответы
Ответ 1
Я написал службу логгера для клиентской стороны. Я использовал шаблон, с помощью которого я могу отфильтровать журналы/ошибки и т.д., Которые создаются моим sscript, а не iframes.
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
}
}
Здесь "ПК:" - это шаблон
Ответ 2
Как добавить фрагмент кода в JavaScript для обнаружения ошибок, создаваемых iFrames?
Вы можете заменить [IFRAME ERROR MESSAGE]
на ошибки, которые бросает iFrame. Если этот фрагмент обнаруживает ошибку из iFrame, он ничего не сделает, иначе он выведет ошибку на консоль:
window.onerror = function (msg, url, line) {
if (msg == "[IFRAME ERROR MESSAGE]") {
return true
}
else {
//do nothing
}
}
Обязательно поместите этот код как можно раньше в script.
Ссылка
Ссылка 2
Рабочий пример (сохраните его как 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>
В этом примере вы увидите, что ошибки не будут выводиться на консоль при нажатии первой кнопки, но при нажатии второй кнопки вы увидите ошибки.
Ответ 3
Вы можете добавить что-то вроде "? nofrm = 1" к атрибуту src тегов script, на которые вы хотите видеть журналы. Затем в Chrome вы можете ввести "nofrm" в фильтр, чтобы получать журналы только из них. Добавьте "? Nofrm = 1" к URL-адресу, если вы хотите также встраивать скрипты.
Ответ 4
Это своего рода старый пост, но все же для тех, кто придет сюда за помощью:
В Chrome вы можете выбрать опцию "Только выбранный контекст" (скриншот здесь), и это будет так.
Ответ 5
Вы можете фильтровать журналы по источнику/скрыть из других сценариев, чем вы сами. Это, конечно, будет только решением, если вы получите журналы из меньшего количества скриптов
![Фильтровать по источникам]()
Ответ 6
Просто отфильтруйте (используя поле фильтра Chrome) сообщения журнала от iFrame.
На вкладке "Консоль Chrome" у вас есть поле "Фильтр", введите имя файла, который вы хотите отфильтровать, со знаком минус "-" перед именем файла. Вы можете фильтровать несколько файлов, используя пробел в качестве разделителя.
Например:
-LogUtil.js -FrameService.js
![enter image description here]()
Или вместо того, чтобы печатать, просто щелкните правой кнопкой мыши сообщение журнала и выберите Hide message from <file_name>
.