如何在Webkit GTK视图中下载文档并打开文件
How to download doc and open file in Webkit GTK View?
我当前正在webkit gtk视图中运行一个html文件。我设置了这些设置:
let new_settings = new WebKit.WebSettings ();
new_settings.enable_universal_access_from_file_uris = true;
this._web_view.set_settings(new_settings);
以为他们会让我在电脑上下载一个文件(这不是我想要做的,但我想测试一下)。这不起作用:/
html负责人如下:
<a href="resume/resume1.doc"><img class="shadow" src="images/design/1.jpg" alt="img01"></a>
我想做的是当用户点击图片时,自动打开libre办公室内的resume1.doc。我不太确定如何使用GTK/HTML
谢谢!:)
不清楚页面是从服务器提供的还是本地加载的。
我还没有对本地文件执行此操作,但对于由服务器提供服务的页面,您将监控mime类型决策,并向webkit指示它需要为它无法处理的mime类型下载mime类型(如果您想下载网页,甚至为它可以处理的mim类型下载)。接下来,您将提供一个文件名并监控进度。下载完成后,Webkit会通知您。允许你这样做的信号是
- 请求mime类型策略决定
- 请求下载
- 通知::状态
对于本地文件,我不知道上述方法是否可行。如果没有,由于您正在控制页面,您可以使用链接属性来告诉您需要打开文件,而不是导航。
一旦从任一方法中获得了文件路径,就可以使用xdg-open命令或其等效功能在可以处理文件的应用程序中打开文件。
你已经开始了。你只需要处理mime类型,并决定如何打开Libre Office。这里有一个本地文件的例子(uri是您想在本地打开的服务器上特定文档的路径):
this._web_view.connect('mime-type-policy-decision-requested',
(function (webview, frame, request, mimetype, decision) {
if (mimetype === 'application/msword' ||
mimetype === 'application/vnd.oasis.opendocument.spreadsheet') {
// Spawn a libreoffice process with this uri. Necessary because
// we want to open the files as templates - the `-n` option
// requires the user to save-as.
GLib.spawn_async(null, /* cwd */
['libreoffice', '-n', request.get_uri()],
null, /* inherit environment */
GLib.SpawnFlags.DO_NOT_REAP_CHILD | GLib.SpawnFlags.SEARCH_PATH,
null /* setup function */ );
decision.ignore();
return true;
} else if (mimetype === 'application/pdf') {
// if PDF, use the build in viewer (usually evince)
Gtk.show_uri(null, request.get_uri(), 0);
decision.ignore();
return true;
}
// default handler
return false;
}).bind(this));
相关文章:
- 将jQuery.js文件附加到html文档中
- 在HTML文档中使用XML文件中的数据
- 使用 PHP 将 css/js 文件分配给 html 文档
- 将变量从服务器上的外部文件加载到 HTML 文档中
- 如何使用Chrome文档中的文件而不是URL
- 如何在angular js中从github获取原始自述文件后将其转换为html格式的文档
- 使用JavaScript,我可以上传一个word文件并使用.replaces然后另存为新文档吗
- 将参数传递到准备好文档的.js文件
- 如何将特定的javascript文件或javascript代码加载到HTML文档中
- 文件上传文档.ready .on('submit') 提交了两次
- 如何将外部HTML文件加载到Javascript文档对象中
- 如何使用javascript将html内容(也有图像)转换为文档文件
- 使用单独的.js javascript 文件打印到文档
- 使用Phonegap显示iOS文档目录中可用的本地pdf文件
- 打开任何文本/文档文件进行编辑,使用Javascript/DOJO/或基于框架的点击事件和Java进行编辑
- 如何使用JavaScript API将Google云端硬盘文档从一个文件夹复制到另一个文件夹
- JavaScript拖放文档/文件
- 如何使用Javascript和HTML创建一个文档文件
- 使用iframe标签在浏览器中查看文档文件
- Javascript-验证文档文件的正则表达式-PDF、TXT、DOC