Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/72.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何使用Javascript和HTML创建文档文件_Javascript_Html_Web - Fatal编程技术网

如何使用Javascript和HTML创建文档文件

如何使用Javascript和HTML创建文档文件,javascript,html,web,Javascript,Html,Web,我有一个网页,我希望当用户点击按钮时,它必须创建一个文档文件,其中包含以下信息,如名称等和名称。我们有php和.net中的库来创建一个文件,html中也有这样的方法,我们可以在项目的根文件夹中创建文件。您不能在服务器上创建它们,因为html和JS都只用于客户端。即使如此,如果您希望在将来执行类似于此客户端的操作,请使用以下信息: 规范中定义了两种方法, 1) 从DOM核心级别2和 2) 从HTML5创建HTMLDocument 前者创建XML文档(包括XHTML),后者创建HTML文档。两者都作

我有一个网页,我希望当用户点击按钮时,它必须创建一个文档文件,其中包含以下信息,如名称等和名称。我们有php和.net中的库来创建一个文件,html中也有这样的方法,我们可以在项目的根文件夹中创建文件。

您不能在服务器上创建它们,因为html和JS都只用于客户端。即使如此,如果您希望在将来执行类似于此客户端的操作,请使用以下信息:

规范中定义了两种方法, 1) 从DOM核心级别2和 2) 从HTML5创建HTMLDocument

前者创建XML文档(包括XHTML),后者创建HTML文档。两者都作为函数驻留在域实现界面上

var impl    = document.implementation,
xmlDoc  = impl.createDocument(namespaceURI, qualifiedNameStr, documentType),
htmlDoc = impl.createHTMLDocument(title);
实际上,这些方法相当年轻,仅在最近的浏览器版本中实现。根据和MDN,以下浏览器支持createHTMLDocument

var htmlDoc = new ActiveXObject("htmlfile");
铬4

歌剧10

火狐4

Internet Explorer 9

狩猎4

您可以使用ActiveXObject在旧版本的Internet Explorer中创建HTML文档:

var htmlDoc = new ActiveXObject("htmlfile");

生成的对象将是一个新文档,它可以像任何其他文档一样进行操作。

HTML和JavaScript在客户端上运行,但要在项目的根文件夹中创建文件,需要在服务器上执行一个过程。幸运的是,这种通信形式有一种通用的标准技术:AJAX。您的进程可能会这样运行:

  • 使用您喜爱的AJAX库向服务器发送创建文件的请求
  • 使用现有库在PHP或.NET服务器上编写代码,这些库将接受请求、创建文件并返回URL
  • 在页面中显示供用户下载的URL

  • 如果您使用JQuery或任何其他标准JavaScript框架,它们将内置一个AJAX库。

    HTML en JavaScript是客户端技术,因此您将无法直接在服务器应用程序的根文件夹中创建文档文件。但是,使用javascript,您可以将JSON发送到服务器,在那里您可以使文档在本地运行。基本上,这个文件在本地运行,而不是在需要的服务器上。因此,现在您要问的是,当用户点击一个按钮时,一个网站是否可以在用户的计算机上写入4000亿个文件。答案再次是:不。由于这些信息很有用,我犹豫是否要投反对票,但没有回答问题。@MarioDeSchaepmeester:编辑了我的答案。谢谢你强调我的错误