我如何检测浏览器是否可以在iframe内打开网络文件夹
How do I detect if a browser can open Network Folder inside iframe?
我需要提醒使用Chrome浏览器浏览的用户,他们需要使用IE打开页面,因为它允许在iframe中打开网络文件夹。
但是我不想检测浏览器,有没有办法检测这个功能?
不,你不能检测到这个特性(如果你可以这样称呼它,允许网页在一个框架中显示本地文件夹是一个非常糟糕的主意)。同源策略使您无法知道加载到框架中的内容,因此无法区分网络文件夹和错误页面。你能做的最好的事情就是检查帧加载所需的时间:
var start = new Date().getTime();
var frame = document.createElement("iframe");
frame.addEventListener("load", function()
{
if (new Date().getTime() - start < 100)
alert("Looks like the network folder didn't load, try using a less secure browser?");
}, false);
frame.src = "file://mynetworkpath/folder";
document.body.appendChild(frame);
在我的测试中,Chrome花了大约30毫秒来加载错误页面,上面的代码设置了100毫秒作为阈值只是为了确保。加载网络文件夹总是需要相当长的时间。这段代码在Firefox 30中不起作用,由于某种原因,在Firefox 30中没有触发load
事件。这可能是一种安全预防措施,但我真的不知道。
或者,您可以尝试加载已知存在的图像:
var img = new Image();
img.onload = function()
{
// Can display the frame
};
img.onerror = function()
{
alert("Try using a less secure browser?");
};
img.src = "file://mynetworkpath/folder/pixel.gif";
请注意,这两种解决方案都不允许区分"浏览器不允许我访问网络文件夹"answers"网络文件夹无法访问,可能没有网络连接"。
相关文章:
- 如何在android中使用phonegap将文件从一个文件夹移动/复制到另一个文件夹
- 如何将乳胶配方奶粉图像保存到Asp.net中的文件夹中
- 展开和折叠文件夹
- 在ng重复循环中显示来自不同文件夹的图像
- 如何将所有JS文件连接到一个文件夹中
- 是否可以用JavaScript显示等效的文件夹对话框
- grunt上的压缩文件夹不起作用
- 如何使用javascript获取从指定文件夹创建的所有文件的名称、大小、类型和日期
- 将Windows文件路径组织到文件夹中
- 链接/按钮从子文件夹下载文件--浏览器只是浏览
- 在更改名称时,使用ajax jsp在下拉菜单中填充多个文件夹的数据
- 我应该将MVC视图特定的javascript文件放在哪个文件夹中
- 如何将JS文件从其他文件夹链接到页面
- 将文件从应用程序文件夹复制到JQM/Phonegap应用程序中的根文件夹
- 在以前的文件夹中加载脚本
- 如何在ExtJs4应用程序上为视图、存储和模型设置自定义文件夹名称
- AngularJS-如何列出给定文件夹中的文件名
- 如何通过资产管道提供Javascript中子文件夹中的图像
- 可在多个相册文件夹中查找的动态图像库
- 我如何检测浏览器是否可以在iframe内打开网络文件夹