这就是我的问题:我有一个网页,通过jquery dom注入显示一些图像,如下所示:
<!-- this is inside an html page -->
<img id="img1" src="#" />
<img id="img2" src="#" />
<img id="img3" src="#" />
这是我用来加载图片的脚本的一个例子
$("#img1").attr("src", "/img/image1.jpg");
$("#img2").attr("src", "/img/image2.jpg");
$("#img3").attr("src", "/img/image3.jpg");
所以图片的完整路径是www.mywebsite.abc/img/someImage.jpg
我需要做的是找到一种方法来切换图像源路径,并强制页面从本地(客户端)路径加载它们,例如c:\ something \ img。
img文件夹结构对于服务器和客户端都是相同的,所以基本上我认为浏览器只需从服务器“切换”到客户端,从客户端的文件夹而不是服务器的文件夹中获取图像一旦他需要他们。
你认为做这样的事情有可能吗?
提前感谢任何建议/答案,如果您需要更多说明,请询问。
最好的问候,再次感谢
答案 0 :(得分:2)
一般来说,不,你不能这样做。浏览器的安全功能不会让您的页面访问文件系统上的文件。但是,如果您在控制客户端计算机的某个有限范围内使用此功能,则可以使用命令行开关来禁用该安全性。
例如,您可以使用--allow-file-access
启动Chrome,然后执行
$("#img3").attr("src", "file://c/something/img/image3.jpg");
我不会推荐它,显然一般用户不会以这种方式启动Chrome。
答案 1 :(得分:2)
您不应该在普通的网页/应用程序中使用它。如果您想要备用网络流量,那么您可以使用正确的缓存标头从服务器提供文件。 然后,在第一次请求之后,客户端的浏览器将从缓存(文件系统)中检索文件,甚至不会打扰您的Web服务器。
有关HTTP缓存的综合教程,请参阅http://www.mnot.net/cache_docs/。
做你的建议是有点模糊,浏览器最有可能阻止它。即使他们没有,你也永远不会知道客户端可能拥有的文件系统。 始终以尽可能以客户端无关的方式开发您的网页/应用程序。
在此之后,如果你仍然想出于某种原因这样做,那么这里的其他答案可能会指向你“正确”的方向。
编辑:
还有另一种可能性。 HTML5具有离线Web应用程序的可能性。基本上,您提供了要脱机使用的资源列表(清单)。任何支持HTML5 Offline的浏览器都将解析此列表并下载并缓存其中列出的文件,即使用户尚不需要该特定文件(用户不需要访问该网站的每个角落)。浏览器会在线时自动保存这些文件的副本。
我认为这可能就是你要找的东西。
有关更多信息和兼容浏览器列表,请参阅http://diveintohtml5.info/offline.html。
答案 2 :(得分:0)
我想不出你为什么要这样做但是试试
$("#img1").attr("src", "file:///img/image1.jpg");
或
$("#img1").attr("src", "file://img/image1.jpg");
它可能有用