Все у него будет. И html и body
Проверил на таком примере
<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-type" content="text/html; charset=utf-8" lang="ru">
<meta name="viewport" content="width=device-width, initial-scale=1.0" >
<title>TEST IFRAME </title>
<script>
document.addEventListener('DOMContentLoaded', () => {
let ifr = document.getElementById('showtext');
ifr.addEventListener ('load', () => {
let difr = ifr.contentDocument;
difr.body.style.color = 'red';
difr.body.style.fontSize = '200%';
})
ifr.src = 'ifr.txt'
})
</script>
</head>
<body>
<iframe id=showtext ></iframe>
<script>
</script>
</body>
</html>
Все работает. Но только, если грузить с сервера, а не локально.
ЗЫ Текстовый файл должен быть в utf-8. Такую кодировку браузер ставит по умолчанию. Иначе кракозябы вместо не латнских символов.