Я хочу переопределить консольные методы (например, журнал, предупреждение, ошибка) iframe.
Я получаю сообщение об ошибке: webrtc/offer: поток не найден в консоли из iframe.
Я пытаюсь переопределить консольные методы (журнал, предупреждение, ошибка), чтобы они выполняли свою первоначальную работу в дополнение к сохранению всех аргументов вызова метода в переменная состояния реакции - consoleOutput.
Но данные в consoleOutput всегда пусты. Есть идеи, почему я не могу переопределить эти методы?
Мой код:
const iframeRef = useRef(null)
const [consoleOutput, setConsoleOutput] = useState([])
useEffect(() => {
if (iframeRef.current) {
const iframeWindow = iframeRef.current.contentWindow as any;
if (iframeWindow) {
const originalConsole = iframeWindow.console;
const newConsoleOutput: string[] = [];
const wrapConsoleMethod = (method: keyof Console, prefix: string) => {
return (...args: any[]) => {
newConsoleOutput.push(`[${prefix}] ` + args.map(String).join(" "));
setConsoleOutput([...newConsoleOutput]);
originalConsole[method](...args);
};
};
iframeWindow.console = {
...originalConsole,
log: wrapConsoleMethod("log", "Log"),
error: wrapConsoleMethod("error", "Error"),
warn: wrapConsoleMethod("warn", "Warn"),
};
}
}
}, []);
Console output from iframe::
{consoleOutput.join('\n')}
console.warn('iframe loaded')}
/>
Подробнее здесь: https://stackoverflow.com/questions/793 ... -an-iframe
Переопределить консольные методы (журнал, предупреждение, ошибка) iframe ⇐ Javascript
-
- Похожие темы
- Ответы
- Просмотры
- Последнее сообщение