我通过file://
协议在默认浏览器中查看本地HTML文件。
我想在HTML文件中添加一些代码/脚本,以便在文件发生变化时(理想情况下是在吸入的CSS文件发生变化时)浏览器刷新页面。
我尝试通过以下方式包括**Live.js**
<script type="text/javascript" src="http://livejs.com/live.js"></script>
但它似乎对通过file://
访问的文件没有任何影响。-已知的解决方案在这里有效吗?
- PS 1:* 我找到了another question relating to this problem,但它没有解决本地文件案例。
- PS 2:* 我知道我可以通过定期重新加载页面
<meta http-equiv="refresh" content="1">
但这不是我需要的我需要零钱。
4条答案
按热度按时间jutyujz01#
更通用的解决方案
单靠Javascript似乎不能解决这个问题,除非浏览器重新提供以前的支持,否则我不认为有一个完美的通用解决方案。
虽然我认为我以前的 Emacs 解决方案是一个很好的解决方案,但对于那些使用没有内置Web服务器的文本编辑器的人来说,这里有另一个更广泛的答案。
使用初始化等待
许多操作系统可以设置一个程序,在文件修改时执行,而不必轮询。没有一个API适用于所有操作系统,但Linux的 inotify 比大多数操作系统更好用,也更容易使用。
这是一个shell脚本,当在HTML和CSS文件所在的目录下运行时,它会告诉Firefox在保存更改时重新加载。如果你想让它只监视少数文件,你也可以使用特定的文件名来调用它。
先决条件:初始化等待和xdotool
你需要安装
inotifywait
和xdotool
才能运行,在Debian GNU/Linux(以及Ubuntu和Mint的后代)上,你可以使用一个命令来获得这些程序:可选:使用 chrome
我建议使用Firefox,因为Chromium(和Chrome)在没有焦点的窗口中处理输入的方式很奇怪。如果你一定要使用Chromium,你可以使用
sendkey()
例程:可选:在韦兰工作
我还没有测试过它,但读到Wayland现在有一个名为X1 M3 N1 X的程序,这是X1 M4 N1 X的替代品。
lqfhib0f2#
Emacs不耐烦模式
在其中一条评论中,提问者提到他们使用Emacs文本编辑器。Emacs有一个简单的解决方案,可以在你输入时实时更新HTML(和CSS):Impatient Mode.
它使用EmacsWeb服务器提供一个带有Javascript的页面,该页面显示每次击键时的实时更新。
安装
如果您已经设置了MELPA,可以使用以下命令轻松安装不耐烦模式
或者,如果您喜欢手动安装,请参阅下面的说明。
使用不耐烦模式
只有三个步骤:
1.运行一次:
1.在正在编辑的任何HTML或CSS缓冲区中运行:
1.打开浏览器到http://localhost:8080/imp,然后单击缓冲区的名称。
现在,只需输入Emacs,就可以看到奇迹发生了!
用法旁注
我已经submitted a patch到不耐烦模式的维护者,当你运行
M-x impatient-mode
时,它会自动启动网络服务器并在你的浏览器中打开正确的URL。希望这会被接受,你只需要一步就可以完成所有的事情。如果发生这种情况,我会编辑这个答案。可选:手动安装
下面的代码不是必需的,但是有些人不希望把MELPA添加到他们的Emacs软件包库列表中,如果是这样的话,你可以这样安装不耐烦模式:
现在编辑您的
.emacs
文件,以便将~/. emacs. d/lisp/的子目录添加到加载路径:这应该足以让不耐烦模式工作,但是如果您希望它稍微快一点,可以对emacs lisp文件进行字节编译。
hsvhsicv3#
浏览器出于安全原因限制对
file:///
协议的访问。在Firefox中,即使是扩展也不再能够访问本地文件,因此您很可能必须在本地提供文件以使用实时重载脚本。如果您这样做,您可以只使用Live.js,但像this这样的东西可能设置起来稍微简单一些。(需要Node.js)wrrgggsh4#
轻量级Web浏览器Gnome-Web(又名epiphany)在本地HTML文件被修改时自动更新。
...并且对“my-guide.html”的任何修改都将自动显示。
Linux上的另一个替代品是“falkon”,我猜它是KDE等效的轻量级浏览器。