Я понимаю, как изменить функцию console.log, чтобы перехватывать журналы и помещать их в массив.Однако, похоже, это не работает для всех журналов консоли.В моем html я загрузил html webapp (\creative\300x600 with video\index.html
), который также делает console.log("click detected")
, который я вижу в моих инструментах chrome dev, но не фиксируется консолью.ogs (второй скрипт в примере кода).Я подозреваю, что, поскольку это загружаемый внешний файл, я не могу его перехватить.
Есть ли решение получить все console.log из любого источника и сохранить его?
<!DOCTYPE html>
<head>
<script>
//add index.html to div on click
function load_home() {
console.log("Loaded");
document.getElementById("content").src='creative\\300x600 with video\\index.html';
}
window.addEventListener("click",load_home);
</script>
<script>
//modify console.log
console.defaultLog = console.log.bind(console);
console.logs = [];
console.log = function() {
console.defaultLog.apply(console, arguments);
console.logs.push(Array.from(arguments));
};
</script>
</head>
<html>
<iframe id="content" style="width: 300px; height:600px; background-color:blue" ></iframe>
</body>
</html>
РЕДАКТИРОВАТЬ:
Попытка сделать это на div, а не вiframe, та же проблема невозможности записи console.log внешнего html.Только console.log("loaded")
из функции load_home регистрируется.
<!DOCTYPE html>
<head>
<script>
function load_home() {
console.log("Loaded");
document.getElementById("content").innerHTML='<object type="text/html" data="creative\\300x600 with video\\index.html" ></object>';
}
window.addEventListener("click",load_home);
</script>
<script>
console.defaultLog = console.log.bind(console);
console.logs = [];
console.log = function() {
console.defaultLog.apply(console, arguments);
console.logs.push(Array.from(arguments));
};
</script>
</head>
<html>
<div id="content" style="width: 300px; height:600px; z-index:-1;" ,"onclick=load_home();" </div>
</body>
</html>