c# Web浏览器支持javascript文件API
C# Web Browser support for javascript Files API
作为我正在做的一个项目的一部分,我们有一个WinForm应用程序,它有一个Web浏览器控件。从该控件,我调用一个html文件,将在本地网络上的共享文件夹。在这个文件夹中,还有各种各样的图像,客户端可能会不时地想要切换出来。
这一切都很好,但我试图使用html文档,用一些javascript来刷新,查看该文件夹,加载所有图像,并使用sliderman.js将这些图像呈现为幻灯片。我不太熟悉javascript,但基本上,在伪代码中,这就是我想要完成的:
<html>
<body>
<script type="text/javascript">
function PageRefreshTimer(){
}
function GetFiles(){
//gets files from local network location (ie: ''192.168.1.2'sharedfolder)
for each file in folder {
//add <img> tag to page for the image
}
}
</script>
</body>
</html>
到目前为止我所完成的是:
<div id="slider_container_3">
<div id="SliderName_3" class="SliderName_3">
<!-- images will be inserted here -->
<script type="text/javascript">
window.alert("found script");
if (window.File && window.FileReader && window.FileList && window.Blob) {
//do your stuff!
} else {
alert('The File APIs are not fully supported by your browser.');
}
</script>
<img src="../01.jpg" width="800" height="200" alt="" title="" />
<img src="../02.jpg" width="800" height="200" alt="" title="" />
</div>
<div class="c"></div>
<script type="text/javascript">
//scripting for sliderman.js
demo3Effect1 = {name: 'myEffect31', top: true, move: true, duration: 400};
demo3Effect2 = {name: 'myEffect32', right: true, move: true, duration: 400};
demo3Effect3 = {name: 'myEffect33', bottom: true, move: true, duration: 400};
demo3Effect4 = {name: 'myEffect34', left: true, move: true, duration: 400};
demo3Effect5 = {name: 'myEffect35', rows: 3, cols: 9, delay: 50, duration: 100, order: 'random', fade: true};
demo3Effect6 = {name: 'myEffect36', rows: 2, cols: 4, delay: 100, duration: 400, order: 'random', fade: true, chess: true};
effectsDemo3 = [demo3Effect1,demo3Effect2,demo3Effect3,demo3Effect4,demo3Effect5,demo3Effect6,'blinds'];
var demoSlider_3 = Sliderman.slider({container: 'SliderName_3', width: 800, height: 200, effects: effectsDemo3, display: {autoplay: 10000}});
</script>
<div class="c"></div>
</div>
如果里面已经有了标签,它会按预期运行幻灯片。但是,当它到达检查是否支持程序类中的API时,它会发送不支持的消息。这背后有什么原因吗?
这仅仅是因为c# Web浏览器控件中缺乏对API的支持吗?
Internet Explorer 11是第一个支持Files API的版本,但只是部分支持(不支持File构造函数)。你可以强制Windows Forms WebBrowser使用最新的IE版本,但它必须安装在客户端机器上。
总而言之,我认为你在使用WebBrowser控件时不会有太多运气,因为它非常依赖于客户端正在运行的版本。
Edit:即使你的机器上安装了ie11, WebBrowser控件也可能使用旧版本,如ie9,这可以通过使用version属性轻松检查。
如果可以强制你的客户端安装IE 11(检查版本后提示安装),那么你可以启用它并使用部分实现的文件API
相关文章:
- 找不到Intel XDK cordova文件api 1.3.3文件
- 如何在IE8中启用JavaScript文件API
- 文件API中的Javascript变量范围
- 我可以使用 HTML5 文件 API 预览 PDF 吗?
- 在NW.js应用程序中为HTML5文件API设置配额
- html5文件api,将用户选择的目录存储在sessionStorage中
- HTML5文件API使用Ajax上传多个图像
- Javascript;HTML文件API-基于文件对象的javascript对象是否仍然包含文件'的位置
- 文件选择/文件API-将文件发送到嵌入式PDFObject
- 使用 HTML 文件 API 和 JavaScript 搜索本地目录
- 如何使用 phonegap 文件 API 在该目录中创建目录和文件
- 使用 Phonegap 文件 API 获取所有文件名
- Cordova 的文件 API 中的元数据
- 如何从特权代码使用 Dom 文件 API
- 有没有办法将文件附加到已经存在的文件列表中?JavaScript 文件 API
- JavaScript 文件 API 具有多个输入
- 兴访问用户配置文件 API
- 使用 HTML5 文件 API 在浏览器中创建音频列表
- 如何从html 5文件API获取图像宽度
- 如何通过文件 API 从 json 文件执行数据