Нежелательное пространство в выводе исходного кода iframe в Ace Editor

В моем проекте я использую Ace Editor и iframe. Ace Editor содержит исходный код из iframe.

Исходный код загружается в Ace Editor при загрузке веб-страницы. Я использую этот код для загрузки исходного кода из iframe в Ace Editor:

function getCode()
{
var code = "<!DOCTYPE html>" + "\n" + document.getElementById("iframe_id").contentWindow.document.documentElement.outerHTML;
editor.getSession().setValue(code);
}

Я должен вывести "" вручную, потому что

document.getElementById("iframe_id").contentWindow.document.documentElement.outerHTML 

не выводит тип документа.

Когда веб-страница загружается, Ace Editor загружает исходный код iframe:

<body onLoad="getCode()">

Но исходный код iframe в редакторе Ace выглядит так:

<!DOCTYPE html>
<html><head>
<title>Learning HTML</title>
</head>
<body>
<h1>Welcome</h1>
<p>This is your first webpage.</p>



</body></html>

Но я хочу, чтобы код был правильно оформлен так:

<!DOCTYPE html>
<html>
<head>
<title>Learning HTML</title>
</head>
<body>
<h1>Welcome</h1>
<p>This is your first webpage.</p>
</body>
</html>

Я не знаю, где проблема. Пожалуйста помоги.

ОБНОВЛЕНИЕ: - Когда я щелкаю правой кнопкой мыши и вижу источник iframe, код такой же, как показано в редакторе Ace.

1 ответ

Решение

Вам придется бросить свой код через HTML beautifier (например, js-beautify), прежде чем показывать его в Ace, если вы хотите добиться этого. У Эйса нет выбора для этого.

Смотрите также этот вопрос.

Другие вопросы по тегам