如何使用JavaScript来呈现Word文档在浏览器
一、功能实现核心:FileSystemObject 对象 要在java-script中实现文件操作功能,主要就是依靠FileSystemobject对象。
二、FileSystemObject编程 使用FileSystemObject 对象进行编程很简单,一般要经过如下的步骤: 创建FileSystemObject对象、应用相关方法、访问对象相关属性 。
(一)创建FileSystemObject对象 创建FileSystemObject对象的 代码只要1行: var fso = new ActiveXObject("Scripting.FileSystemObject"); 上述代码执行后,fso就成为一个FileSystemObject对象实例。
(二)应用相关方法 创建对象实例后,就可以使用对象的相关方法了。
比如,使用CreateTextFile方法创建一个文本文件: var fso = new ActiveXObject("Scripting.FileSystemObject"); var f1 = fso.createtextfile("c:\\myjstest.txt",true"); (三)访问对象相关属性 要访问对象的相关属性,首先要建立指向对象的句柄,这就要通过get系列方法实现:GetDrive负责获取驱动器信息,GetFolder负责获取文件夹信息,GetFile负责获取文件信息。
比如,指向下面的代码后,f1就成为指向文件c:\test.txt的句柄: var fso = new ActiveXObject("Scripting.FileSystemObject"); var f1 = fso.GetFile("c:\\myjstest.txt"); 然后,使用f1访问对象的相关属性。
比如: var fso = new ActiveXObject("Scripting.FileSystemObject"); var f1 = fso.GetFile("c:\\myjstest.txt"); alert("File last modified: " + f1.DateLastModified); 执行上面最后一句后,将显示c:\myjstest.txt的最后修改日期属性值。
但有一点请注意:对于使用create方法建立的对象,就不必再使用get方法获取对象句柄了,这时直接使用create方法建立的句柄名称就可以: var fso = new ActiveXObject("Scripting.FileSystemObject"); var f1 = fso.createtextfile("c:\\myjstest.txt",true"); alert("File last modified: " + f1.DateLastModified); 三、操作驱动器(Drives) 使用FileSystemObject对象来编程操作驱动器(Drives)和文件夹(Folders)很容易,这就象在Windows文件浏览器中对文件进行交互操作一样,比如:拷贝、移动文件夹,获取文件夹的属性。
(一)Drives对象属性 Drive对象负责收集系统中的物理或逻辑驱动器资源内容,它具有如下属性: l TotalSize:以字节(byte)为单位计算的驱动器大小。
l AvailableSpace或FreeSpace:以字节(byte)为单位计算的驱动器可用空间。
l DriveLetter:驱动器字母。
l DriveType:驱动器类型,取值为:removable(移动介质)、fixed(固定介质)、network(网络资源)、CD-ROM或者RAM盘。
l SerialNumber:驱动器的系列码。
l FileSystem:所在驱动器的文件系统类型,取值为FAT、FAT32和NTFS。
l IsReady:驱动器是否可用。
l ShareName:共享名称。
l VolumeName:卷标名称。
l Path和RootFolder:驱动器的路径或者根目录名称。
(二)Drive对象操作例程 下面的例程显示驱动器C的卷标、总容量和可用空间等信息: var fso, drv, s =""; fso = new ActiveXObject("Scripting.FileSystemObject"); drv = fso.GetDrive(fso.GetDriveName("c:\\")); s += "Drive C:" + " - "; s += drv.VolumeName + "\n"; s += "Total Space: " + drv.TotalSize / 1024; s += " Kb" + "\n"; s += "Free Space: " + drv.FreeSpace / 1024; s += " Kb" + "\n"; alert(s); 四、操作文件夹(Folders) 涉及到文件夹的操作包括创建、移动、删除以及获取相关属性。
Folder对象操作例程 : 下面的例程将练习获取父文件夹名称、创建文件夹、删除文件夹、判断是否为根目录等操作: var fso, fldr, s = ""; // 创建FileSystemObject对象实例 fso = new ActiveXObject("Scripting.FileSystemObject"); // 获取Drive 对象 fldr = fso.GetFolder("c:\\"); // 显示父目录名称 alert("Parent folder name is: " + fldr + "\n"); // 显示所在drive名称 alert("Contained on drive " + fldr.Drive + "\n"); // 判断是否为根目录 if (fldr.IsRootFolder) alert("This is the root folder."); else alert("This folder isn't a root folder."); alert("\n\n"); // 创建新文件夹 fso.CreateFolder ("C:\\Bogus"); alert("Created folder C:\\Bogus" + "\n"); // 显示文件夹基础名称,不包含路径名 alert("Basename = " + fso.GetBaseName("c:\\bogus") + "\n"); // 删除创建的文件夹 fso.DeleteFolder ("C:\\Bogus"); alert("Deleted folder C:\\Bogus" + "\n"); 五、操作文件(Files) 对文件进行的操作要比以上介绍的驱动器(Drive)和文件夹(Folder)操作复杂些,基本上分为以下两个类别:对文件的创建、拷贝、移动、删除操作和对文件内容的创建、添加、删除和读取操作。
下面分别详细介绍。
(一)创建文件 一共有3种方法可用于创建一个空文本文件,这种文件有时候也叫做文本流(text stream)。
第一种是使用CreateTextFile方法。
代码如下: var fso, f1; fso = new ActiveXObject("Scripting.FileSystemObject"); f1 = fso.CreateTextFile("c:\\testfile.txt", true); 第二种是使用OpenTe...
如何用javascript操作本地文件
操作文件主要是利用了Javascript中的FileSystemObject对象,直接上代码:<script>var fso = new ActiveXObject("Scripting.FileSystemObject");var ForReading = 1, ForWriting = 2, ForAppending = 8;function createFile(file){var tf = fso.CreateTextFile(file, true);tf.Close();}function readFileOnly(file){var ts = fso.OpenTextFile(file, ForReading);var s = ts.ReadAll();ts.Close();alert(s);}function readFileForWrite(file,content){var ts = fso.OpenTextFile(file, ForWriting);ts.Write(content);ts.Close();}function readFileForAppend(file,content){var ts = fso.OpenTextFile(file, ForAppending);ts.Write(content);ts.Close();}</script>文件的创建,读取和写入方法都有,可以参考。
js怎么打开本地的一个文件
用这个方法:var WordApp=new ActiveXObject("Word.Application");//注:IE的ActiveX安全性能放开才行WordApp.Application.visible=false;var Doc=WordApp.documents.open(path);//对word 的操作见office的MSDNWordApp.quit();
js中用链接实现打开本地文件对话框
/* 用如下代码把该函数应用到一个HTML文件中:或把下面代码直接COPY到...标签中;用一般的触发函数均可在HTML文件中使用该函数例如:注意:请定义NAME为savePath的输入框接收或显示返回的值,例如: 特别注意的是,由于安全方面的问题,你还需要如下设置才能使本JS代码正确运行,否者会出现"没有权限 "的问题.1、设置可信任站点(例如本地的可以为:http://localhost ) 2、其次:可信任站点安全级别自定义设置中:设置下面的选项"对没有标记为安全的ActiveX控件进行初始化和脚本运行"----"启用 " */function BrowseFolder(){ try{ var Message = "请选择文件夹"; //选择框提示信息 var Shell = new ActiveXObject( "Shell.Application" ); var Folder = Shell.BrowseForFolder(0,Message,0x0040,0x11);//起始目录为:我的电脑 //var Folder = Shell.BrowseForFolder(0,Message,0); //起始目录为:桌面 if(Folder != null){ Folder = Folder.items(); // 返回 FolderItems 对象 Folder = Folder.item(); // 返回 Folderitem 对象 Folder = Folder.Path; // 返回路径 if(Folder.charAt(Folder.length-1) != "\\"){ Folder = Folder + "\\"; } document.all.savePath.value=Folder; return Folder; } }catch(e){ alert(e.message); }}...
用JavaScript导出当前页面的word文档怎么做
一、功能实现核心:FileSystemObject 对象 要在java-script中实现文件操作功能,主要就是依靠FileSystemobject对象。
二、FileSystemObject编程 使用FileSystemObject 对象进行编程很简单,一般要经过如下的步骤: 创建FileSystemObject对象、应用相关方法、访问对象相关属性 。
(一)创建FileSystemObject对象 创建FileSystemObject对象的 代码只要1行: var fso = new ActiveXObject("Scripting.FileSystemObject");上述代码执行后,fso就成为一个FileSystemObject对象实例。
(二)应用相关方法 创建对象实例后,就可以使用对象的相关方法了。
比如,使用CreateTextFile方法创建一个文本文件: var fso = new ActiveXObject("Scripting.FileSystemObject");var f1 = fso.createtextfile("c:\\myjstest.txt",true"); (三)访问对象相关属性 要访问对象的相关属性,首先要建立指向对象的句柄,这就要通过get系列方法实现:GetDrive负责获取驱动器信息,GetFolder负责获取文件夹信息,GetFile负责获取文件信息。
比如,指向下面的代码后,f1就成为指向文件c:\test.txt的句柄:var fso = new ActiveXObject("Scripting.FileSystemObject"); var f1 = fso.GetFile("c:\\myjstest.txt"); 然后,使用f1访问对象的相关属性。
比如: var fso = new ActiveXObject("Scripting.FileSystemObject"); var f1 = fso.GetFile("c:\\myjstest.txt"); alert("File last modified: " + f1.DateLastModified); 执行上面最后一句后,将显示c:\myjstest.txt的最后修改日期属性值。
但有一点请注意:对于使用create方法建立的对象,就不必再使用get方法获取对象句柄了,这时直接使用create方法建立的句柄名称就可以: var fso = new ActiveXObject("Scripting.FileSystemObject");var f1 = fso.createtextfile("c:\\myjstest.txt",true"); alert("File last modified: " + f1.DateLastModified); 三、操作驱动器(Drives) 使用FileSystemObject对象来编程操作驱动器(Drives)和文件夹(Folders)很容易,这就象在Windows文件浏览器中对文件进行交互操作一样,比如:拷贝、移动文件夹,获取文件夹的属性。
(一)Drives对象属性 Drive对象负责收集系统中的物理或逻辑驱动器资源内容,它具有如下属性: l TotalSize:以字节(byte)为单位计算的驱动器大小。
l AvailableSpace或FreeSpace:以字节(byte)为单位计算的驱动器可用空间。
l DriveLetter:驱动器字母。
l DriveType:驱动器类型,取值为:removable(移动介质)、fixed(固定介质)、network(网络资源)、CD-ROM或者RAM盘。
l SerialNumber:驱动器的系列码。
l FileSystem:所在驱动器的文件系统类型,取值为FAT、FAT32和NTFS。
l IsReady:驱动器是否可用。
l ShareName:共享名称。
l VolumeName:卷标名称。
l Path和RootFolder:驱动器的路径或者根目录名称。
(二)Drive对象操作例程 下面的例程显示驱动器C的卷标、总容量和可用空间等信息: var fso, drv, s =""; fso = new ActiveXObject("Scripting.FileSystemObject");drv = fso.GetDrive(fso.GetDriveName("c:\\")); s += "Drive C:" + " - "; s += drv.VolumeName + "\n"; s += "Total Space: " + drv.TotalSize / 1024; s += " Kb" + "\n"; s += "Free Space: " + drv.FreeSpace / 1024; s += " Kb" + "\n"; alert(s); 四、操作文件夹(Folders) 涉及到文件夹的操作包括创建、移动、删除以及获取相关属性。
Folder对象操作例程 : 下面的例程将练习获取父文件夹名称、创建文件夹、删除文件夹、判断是否为根目录等操作:var fso, fldr, s = ""; // 创建FileSystemObject对象实例 fso = new ActiveXObject("Scripting.FileSystemObject"); // 获取Drive 对象 fldr = fso.GetFolder("c:\\"); // 显示父目录名称 alert("Parent folder name is: " + fldr + "\n"); // 显示所在drive名称 alert("Contained on drive " + fldr.Drive + "\n"); // 判断是否为根目录 if (fldr.IsRootFolder) alert("This is the root folder."); else alert("This folder isn't a root folder.");alert("\n\n");// 创建新文件夹 fso.CreateFolder ("C:\\Bogus"); alert("Created folder C:\\Bogus" + "\n"); // 显示文件夹基础名称,不包含路径名 alert("Basename = " + fso.GetBaseName("c:\\bogus") + "\n"); // 删除创建的文件夹 fso.DeleteFolder ("C:\\Bogus"); alert("Deleted folder C:\\Bogus" + "\n"); 五、操作文件(Files) 对文件进行的操作要比以上介绍的驱动器(Drive)和文件夹(Folder)操作复杂些,基本上分为以下两个类别:对文件的创建、拷贝、移动、删除操作和对文件内容的创建、添加、删除和读取操作。
下面分别详细介绍。
(一)创建文件 一共有3种方法可用于创建一个空文本文件,这种文件有时候也叫做文本流(text stream)。
第一种是使用CreateTextFile方法。
代码如下: var fso, f1; fso = new ActiveXObject("Scripting.FileSystemObject");f1 = fso.CreateTextFile("c:\\testfile.txt", true); 第二种是使用OpenTextFile方...
本地站点上的html文档直接打开本地站点上的word文档而不是下载,...
web页面无法支持预览office文档,但是却可以预览PDF、flash文档,所以大多数解决方案都是在服务端将office文档转换为pdf,然后再通过js的pdf预览插件(谷歌浏览器等已经原生支持嵌入PDF文档)进行查看。
Aspose 后台转换可以使用Aspose将office文档转换为PDF格式,Aspose功能强大,支持编辑/转换word、excel、ppt、pdf等,且API操作简便快速。
Aspose是收费的,你需要下载破解版本。
除了Aspose可以编辑文档,类似的还有NPOI 、POI等。
1、利用flexPaper预览swf文件,百度文库就是这种方式 由于现在flash插件用得已经很少,此处不再赘述,详细请看这里2、pdfjs pdfjs是firefox浏览器内置的pdf预览插件,由于是开源的,我们也可以使用它,ie版本只支持ie9/ie9+。
它通过将pdf转换为html元素再添加一些css3的样式达到pdf的预览效果,文档样式与原文档几乎没有太大区别。
3、在页面中嵌入多媒体对象(PDF、flash、video等) 缺点是不同的浏览器支持及呈现不一致,比如pdf目前只有webkit浏览器原生支持嵌入,而且移动端的webkit浏览器也是不支持的。
PDF嵌入可以采用已封住好操作的插件PDFObject,也可以通过浏览器API自行编写。
另外,个人建议可以用md(markdown,拥有类似word文档的操作,可在线修改、预览,前后台数据调用非常方便)文件来保存在线预览的文档,不要用office类的文件格式保存,关于markdown的用法可参考其官网:网页链接
为什么js不能操作本地文件
JS是浏览器脚本文件,实现页面内容的计算、显示和交互。
例如点击按钮弹出一个详细信息,播放音频,展开二三级菜单,显示更多内容及滚动显示轮播等等。
页面样式和弱交互一般CSS可以实现,但复杂的就需要JS来实现。
随着JS的发展,JS在浏览器端能实现的功能越来越多,例如经典的JQuery,最近几年发展起来的React、Angularjs和Vue.js,这些JS框架给前端开发带来了极大的便利,可以非常高效的实现复杂的页面数据调用和交互,网页的功能也越来越强大,甚至出现了非常多的网页运用,例如百度脑图、微信图文编辑器等等在线工具。
但是,所有这些功能仅限于浏览器端,JS依赖浏览器来解释执行。
浏览器作为安装到系统中的原生软件,是有权限操作本地文件的,比如浏览器自动更新、上传文件和下载文件。
但是,如果把操作本地文件的权限开放给JS,就意味着,开发者只需要写一个JS,放到某个地址,用户打开这个链接,浏览器执行JS,就开始操作本地文件。
于是,显而易见,只需要一个JS就可以做以下事情:自动上传用户的文件、资料,删除、修改用户的文件、软件,自动下载文件、软件甚至木马到用户本地。
计算机安全问题最大的隐患就是互联网,我们连网站的安全都无法完全保障,又怎么能开放那么大的原生软件才有的权限给网页自己的脚本文件JS呢?如果JS能修改和操作本地文件,那么只要打开一个连接,就相当于直接装上一个不认识的软件到自己的系统里!可以搜索查询到指定目录下发送你的聊天记录、帐号资料等等,这是多么危险的行为。
如果一个浏览器如此不完全,谁还会用这种浏览器呢?所以JS语言在设计之处,就没有这个功能。
直到HTML5的File API,也只能实现读取(需要用户主动操作)本地文件(只读方式),在内存中操作和修改,修改完了以后只能上传或者download,对本地原有文件无法产生任何影响。
同时浏览器也给很多操作限制了权限,例如上传文件、上传图片换头像等功能,只能用户通过主动点击事件和主动选择文件来实现,JS无法自动上传。
JS本身有打开新窗口的功能,但是也是需要用户主动点击或者Enter键才能触发,否则会被浏览器拦截,并显示被拦截信息。
高危行为,都有限制。
当然,也不是完全没有办法,你可以通过Node.js实现,让JS像PHP一样实现后端脚本功能。
前提是要自己安装配置一堆东西,你的JS就能操作本地文件了。
但是用户肯定不会这么干,也不知道怎么安装,浏览器本身就有安全隔离,如果你是自己要实现JS操作本地文件可以用这个思路,如果是给别人用户非常困难。
jQuery或者js保存文件到本地
// 浏览文件夹(指定文件路径)function BrowseFolder() { try { var Message = "Please select the folder path."; //选择框提示信息 var Shell = new ActiveXObject("Shell.Application"); var Folder = Shell.BrowseForFolder(0, Message, 0x0040, 0x11); //起始目录为:我的电脑 //var Folder = Shell.BrowseForFolder(0,Message,0); //起始目录为:桌面 if (Folder != null) { Folder = Folder.items(); // 返回 FolderItems 对象 Folder = Folder.item(); // 返回 Folderitem 对象 Folder = Folder.Path; // 返回路径 if (Folder.charAt(Folder.length - 1) != "\\") { Folder = Folder + "\\"; } return Folder; } } catch (e) { alert(e.message); }}//保存文件function SaveInfoToFile(folder, fileName) { var filePath = folder + fileName; var fileInfo = "hahahaha"; var fso = new ActiveXObject("Scripting.FileSystemObject"); var file = fso.CreateTextFile(filePath, true); file.Write(fileInfo); file.Close();}以上代码并没有处理xml,关于xml可以找相关资料。
展开
转载请注明出处51数据库 » js展现本地word文件