2010-08-23 66 views
2

我想通过javascript创建整个页面,即当我在浏览器的地址栏中提供路径时,JavaScript将使用document.write()创建整个HTML页面。通过JavaScript创建HTML页面

我只想确认它是否适合做这件事?或者如果它会导致任何问题?

+3

你打算如何将JS加载到浏览器中? – Oded 2010-08-23 11:35:08

+2

为什么你采取这种方法有什么特别的原因吗?或者这只是为了看看是否可以完成? – InSane 2010-08-23 11:37:53

+2

这是一个可怕的想法。你为什么想这样做? – 2010-08-23 11:38:25

回答

3

可以使用空的<body></body>标记提供HTML页面,其中所有元素都是用JavaScript创建的。例如,一些丰富的UI JavaScript框架(例如Sencha(以前称为ExtJS))依赖于此技术。

但是,一般情况下,您不希望为此使用document.write()。通过appendChild()方法或使用innerHTML属性,将元素附加到DOM通常会更好也更容易。

作为示例,您可能想从Sencha查看此示例的源代码。整个UI呈现在JavaScript:


正如在评论你的问题指出,在Tom's answer,你仍然需要一个基础的HTML页面服务的JavaScript代码。你需要的最低限度可能是这样的:

<!DOCTYPE html> 
<html> 
<head> 
    <meta http-equiv="content-type" content="text/html; charset=UTF-8"/> 
    <title>My Rich Web Application</title> 
    <script src="your-code.js" type="text/javascript"></script> 
</head> 
<body> 
</body> 
</html> 
+0

非常感谢Q. – 2010-08-23 11:49:42

3

这会导致问题。

Firsty你将如何维护该代码,这将是一场噩梦。其次,你为什么要这样做?如果是为了保护你的超级秘密HTML,不要打扰!它不如你相信那样有价值。

第三,没有启用JS的用户呢?

第四,搜索引擎将如何索引您的网站。

就像oded提到的那样,你需要某种基本页面来调用脚本。

+0

thnx ..我只是想知道它是否有可能......? – 2010-08-23 11:45:29

+2

丰富的网络应用程序,如Google Maps,完全由JavaScript渲染。你为绝大多数网站提供了一些非常有效的点,但我不认为情况总是如此...... JavaScript代码不一定是恶梦来维护。 – 2010-08-23 11:49:31

+4

对不起,如果我的回答有点苛刻。像这样的大多数问题都是为了保护不可能的代码。在大量的document.writes中维护HTML代码将比标准的HTML难以维护(尽管可能不是指出的那样的噩梦)。从OP的回答中,我也(可能错误地)假设他不是在讨论丰富的网络应用程序,但您的观点是有效的。 如果你想知道它是否可能,是的,这是完全可能的,但除非谨慎使用,否则会导致很多问题。 – 2010-08-23 11:54:56