Ace Editor中iframe源代码输出中不需要的空间

时间:2014-09-05 09:21:22

标签: javascript jquery html iframe ace-editor

在我的项目中,我正在使用Ace Editor和iframe。 Ace编辑器包含iframe的源代码。

加载网页时,Ace编辑器会加载源代码。我正在使用此代码将iframe的源代码加载到Ace编辑器:

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

我必须输出“&lt;!DOCTYPE html&gt;”手动,因为

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

不输出doctype。

当网页加载Ace编辑器时,加载iframe源代码:

<body onLoad="getCode()">

但Ace编辑器中iframe的源代码如下所示:

<!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 个答案:

答案 0 :(得分:1)

如果你想实现这个目的,你必须先通过HTML美化器(如js-beautify)抛出代码,然后才能在Ace中显示它。 Ace本身没有选择。

另见this question