使用JS </div>将<div>下载到.doc或.docx

时间:2012-08-04 16:31:36

标签: javascript jquery .doc

说我有div的动态内容:

//a button to click, or something
<button type="button">Download Content as a .doc</button>

//Div to be downloads as .div
<div class="gc"> //Generated content
   <h1>A Header</h1>
   <p>A Paragraph</p>
   <ul><li>A</li><li>List</li><li>Here</li></ul>
</div>

如果不使用服务器端帮助,您可以建议采用哪种方法?我对JS开放,因为我目前正在学习这个,并且可以使用Jquery访问div,只是寻找一个简单的答案或向正确的方向提示学习。

希望它像对手一样容易,就像在this中显示一个pdf,但我不知道。

对于我的特定情况,内容可以格式化或不格式化,作为对象放在单词或其他一些古怪的解决方法中,或者可能使用通用的浏览器扩展。最终,我只是希望能够为用户提供内容的.doc(可能.docx)版本。

如果我必须使用服务器端功能,有什么好的链接可以帮助我蜿蜒解决方案吗?因为我不懂AJAX或PHP,但我愿意学习!

3 个答案:

答案 0 :(得分:4)

如果没有某种服务器端发送正确的标头,这是不可能的。

您可以将.html文件重命名为.doc,并且word会吃掉它,但是您仍然需要一些PHP,或者您选择的任何服务器语言来发送内容处理下载标记和内容类型application / vnd-ms-word header。

由于明显的安全风险,使用纯javascript是不可能的。

答案 1 :(得分:2)

使用blob构建器和对象URL,HTML5可以实现部分功能。困难的部分是生成一个与文字兼容的文件,作为练习留给读者:

// normalize vendor extensions
window.BlobBuilder = window.MozBlobBuilder || window.WebKitBlobBuilder || window.BlobBuilder;
window.URL = window.URL || window.webkitURL;

// create the file and append contents to it
var blobthebuilder = new BlobBuilder();
blobthebuilder.append("some text");

// create a URL for the newly created file with a mime
// type and make the anchor point to it
anchor.href = window.URL.createObjectURL(blobthebuilder.getBlob("text/html"));​

Webkit还支持a[download],它会自动下载文件而不需要左键单击→另存为...

jsFiddle上的演示。

答案 2 :(得分:0)

我不认为你可以通过AJAX在没有服务器端脚本的情况下做到这一点。

如果您使用php,通过AJAX发送并作为文本文件发送回下载将很简单。然后你只需要找到一个可以将其转换为.doc文件的脚本,因为这是一种复杂的格式。

但是我不确定HTML5 ..有很多新功能。

编辑:好的,我可以看到SchizoDuckie以1分钟的成绩击败了我lol:o)