Нежелательное пространство в выводе исходного кода 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, если вы хотите добиться этого. У Эйса нет выбора для этого.
Смотрите также этот вопрос.