DOM变化

<input type=”file”>

HTML5支持文件对话框标签 <input type="file" /> , 并提供了属性如multiple , accept以及 webkitdirectory 等 .

NW.js应用更好的扩展了文件输入框 . 但考虑到安全性 , NW.js扩展的属性只能在Node框架中启用 . 参考安全查看Node和普通框架的区别 .

fileinput.value

用途:包含本地文件的原路径

例如,您可以使用Node.js API读取用户选择的文件路径:

  1. // 获取选择文件的原路径
  2. var fileinput = document.querySelector('input[type=file]');
  3. var path = fileinput.value;
  4.  
  5. // 使用Node.js的API读取文件
  6. var fs = nw.require('fs');
  7. fs.readFile(path, 'utf8', function(err, txt) {
  8. if (err) {
  9. console.error(err);
  10. return;
  11. }
  12.  
  13. console.log(txt);
  14. });

fileitem.path

用途:获取 files中选择的每个文件原路径

HTML5提供了 files属性来返回在 <input>标签中选择的所有文件。

NW.js则为 files提供了一个额外属性 fileitem.path获取 files中选择的每个文件原路径,

  1. var fileinput = document.querySelector('input[type=file]');
  2. var files = fileinput.files;
  3.  
  4. for (var i = 0; i < files.length; ++i) {
  5. console.log(files[i].path);
  6. }

标签属性: nwdirectory

属性:nwdirectory属性类似于 webkitdirectory , 但返回值为路径 , 而不是文件对象

  1. <input type="file" nwdirectory>

标签属性: nwsaveas

属性:nwsaveas属性可打开让可输入文件路径的 '另存为'对话框. 该方式不同于默认的文件选择标签

  1. <input type="file" nwsaveas>

该属性还支持指定默认的存储文件名称:

  1. <input type="file" nwsaveas="filename.txt">

标签属性: nwworkingdir

属性:当激活元素时, nwworkingdir属性可令文件对话框将在给定目录中打开

例如,在 /home/path/中打开文件对话框:

  1. <input type="file" nwworkingdir="/home/path/">

事件: oncancel

触发:取消对话框时

<iframe>

NW.js扩展了 <iframe>标签使应用开发更加简单 , 可以绕过沙箱限制以及同源策略等跨域问题 .

参考webview标签中的 <webview>标签 .

标签属性: nwdisable

属性:使框架和自框架为正常框架

注意,该属性不能阻止页面中正常框架访问父页面以及体层框架 . 但仍然能够访问Node.js的API . 该属性通常与 nwfaketop属性一同使用 .

标签属性: nwfaketop

属性:阻止框架中页面访问 window.parentwindow.top

框架自己拥有 window对象 , 其子框架也会受到影响

该属性通常与 nwdisable一同使用

标签属性: nwUserAgent

属性:框架和自框架加载页面时重写 user-agent属性

更多细节,请参考user-agent配置