У меня следующий HTML-код:
<code><pre id="js-code"><iframe src="sass/main.sass.html" frameborder="0" id="c-frame"></iframe>
... и js:
document.addEventListener('DOMContentLoaded', function(){
var code = window.frames[0].document.body.innerHTML;
alert(window.frames[0].document.body.innerHTML);
alert(document.getElementById("c-frame").contentDocument.body.innerHTML);
alert(document.getElementById("c-frame").contentDocument.body.innerHTML.indexOf('\n'));
document.getElementById("c-frame").contentDocument.body.innerHTML = document.getElementById("c-frame").contentDocument.body.innerHTML.replace(/\n/g, '<br>');
});
Я хочу получить содержимое iframe и заменить '\ n'с
.Но я вижу непонятное поведение при запуске этого:
- (Chrome, Opera, Firefox) содержимое отображается на html-странице.
- (Chrome, Opera) alert 1: '';предупреждение 2: '';предупреждение 3: «-1»;замена не работает;
- (Firefox 64.0) предупреждение 1: '';предупреждение 2: '';предупреждение 3: «28»;замена работы;
Примечание: в Firefox работает этот код:
document.addEventListener('DOMContentLoaded', function(){
alert(document.getElementById("c-frame").contentDocument.body.innerHTML.indexOf('\n'));
document.getElementById("c-frame").contentDocument.body.innerHTML = document.getElementById("c-frame").contentDocument.body.innerHTML.replace(/\n/g, '<br>');
});
вызвал предупреждение с результатом '-1', но замена сработала.
Этот код проверен как локальный файл, запущенный вбраузер, с синхронизацией браузера и на удаленном сервере - результаты были похожи.