我正在尝试构建一个示例书签,以抓取当前网页源代码并将其传递给验证程序。验证器不是一个在线网站,而是一大堆javascript和html文件的文件夹。我试图在javascript bookmarklet代码的帮助下打开file:/// C:/Users/Electrifyings/Desktop/Validator/Main.html文件,并将源代码放在新打开的窗口的textarea中,但它是不工作的原因,我不知道。使用Javascript打开当前窗口中的本地html文件Bookmarklet
下面是示例代码算法:
javascript:(function(){var t = document.body.innerHTML;window.open('file:///C:/Users/RandomHero/Desktop/test.html',_self);document.getElementById("validator_textarea")=t;})()
步骤如下:
- 抓斗在可变电流网页源代码。在当前或新窗口或新选项卡
- 打开本地存储的HTML网页(无论哪种方式,我无所谓,但没有运气)
- 从变量将源代码转换成新打开HTML文件的验证文本区域。
我已经尝试了上面的代码有很多变化,但卡住了它打开新窗口的部分。要么它根本没有打开新的窗口,或者打开空白窗口而不加载文件。
很想得到这个问题的一些帮助,非常感谢。
哦,顺便说一句,
的Windows 7 64位,试了IE,Firefox和Chrome。所有最新和稳定的版本。我想这不是一个浏览器端的问题,但与JavaScript代码相关的东西不打开与file:///协议的URI。让我知道是否需要更多细节。 :)
谢谢,我有点知道,浏览器将不会让我去的文件:从http ///页://由于安全原因页。所以我正在考虑从小书签中的JavaScript代码向当前网页添加小型HTML覆盖窗口。这个小的HTML覆盖将允许询问用户他是否想验证该文件,并且我认为浏览器在获得用户发起的操作输入(例如点击)后重定向到本地文件没有问题。这是可能的还是正确的解决方案? – Electrifyings
如果是的话,你可以给我一个示例代码来做到这一点,因特网上的所有示例代码都使用CSS,所以不知道如何添加到当前打开的网页并实现HTML覆盖。希望你明白我的意思。 :-) – Electrifyings
我不相信那会奏效。为了澄清,限制是这样的:浏览器永远不会让Javascript代码(除非它在一个插件中)启动本地文件访问。然而,它将允许纯粹由用户启动的文件访问。在实践中,这会杀死你的想法,因为虽然点击事件本身是用户发起的操作,但它的处理程序只是Javascript代码;你无法对这个处理程序做任何事情,而你在非处理程序JS中无法做到这一点。 – machineghost