在Chrome中保存对html文件的更改时自动重新加载浏览器?

Kev*_*rke 81 vim automation google-chrome

我正在Vim中编辑一个HTML文件,我想让浏览器在下面的文件发生变化时刷新.

是否有适用于Google Chrome的插件会监听文件的更改,并在每次保存对文件的更改时自动刷新页面?我知道有适用于Firefox的XRefresh但我无法让XRefresh运行.

写一个脚本来做这件事有多难?

lee*_*sky 59

纯JavaScript解决方案!

Live.js

只需将以下内容添加到您的<head>:

<script type="text/javascript" src="http://livejs.com/live.js"></script>
Run Code Online (Sandbox Code Playgroud)

怎么样?只需包含Live.js,它将通过向服务器发送连续的HEAD请求来监控当前页面,包括本地CSS和Javascript.CSS的更改将动态应用,HTML或Javascript更改将重新加载页面.试试吧!

哪里?Live.js适用于Firefox,Chrome,Safari,Opera和IE6 +,直到证明不是这样.Live.js独立于您使用的开发框架或语言,无论是Ruby,Handcraft,Python,Django,.NET,Java,Php,Drupal,Joomla还是您有什么.

我复制这个答案几乎一字不差这里,因为我觉得它比这里目前公认的答案更容易,更普遍.

  • 你可以把它放在顶部,也可以使用python -m SimpleHTTPServer轻松实现 (5认同)
  • 另一个 PHP 版本是 `php -S localhost:8080` (3认同)
  • @arvixx 只要您运行本地 http 服务器(并使用 http(s)://),它就可以处理本地文件。我同意它不适用于 file:// uri 方案,如果这就是你的意思的话。请参阅上面 Marcel Valdez Orozco 的评论,了解一种从本地目录即时创建 http 服务器的简单方法。 (3认同)
  • 还有`python3 -m http.server`,以及[更多其他语言/工具](https://gist.github.com/willurd/5720255)。 (2认同)
  • 哇,这是一个非常巧妙的解决方案。我很惊讶我必须滚动这么远才能找到它。 (2认同)
  • 恐怕这不是一个可扩展的解决方案。如果您有数百个资产文件,那么 HEAD 请求将占用大量 CPU。还会弄乱您的网络选项卡。 (2认同)

mil*_*man 25

我假设你不在OSX上?否则你可以用applescript做这样的事情:

http://brettterpstra.com/watch-for-file-changes-and-refresh-your-browser-automatically/

还有一个名为"自动刷新加"的chrome插件,您可以在每x秒指定一次重新加载:

https://chrome.google.com/webstore/detail/auto-refresh-plus/oilipfekkmncanaajkapbpancpelijih?hl=en

  • 该插件似乎没有看到本地文件系统,而只是定期刷新. (14认同)
  • 这是一个非常古老的问题,但[browser-sync](https://www.browsersync.io)就是这样的工具. (2认同)

Kon*_*rin 24

Tincr是Chrome扩展程序,只要下面的文件发生更改,它就会刷新页面.

  • 这个工具很棒.除此之外,您可以刷新页面上的CSS而无需刷新HTML/JS. (4认同)
  • 遗憾的是,Tincr使用的NPAPI已被弃用,并且默认情况下在Chrome中被禁用(自2015年4月开始)。并将很快将其完全删除(2015年9月)。 (3认同)
  • 不再可用. (2认同)
  • 我没有在exts画廊中找到它,但发现DevTools自动保存 (2认同)

Alv*_*aro 19

我知道这是一个老问题,但如果它对某人有帮助,有一个reload npm 包可以解决它。

如果您没有在服务器上运行它或收到错误 Live.js doesn't support the file protocol. It needs http.

只需安装它:

npm install reload -g
Run Code Online (Sandbox Code Playgroud)

然后在您的 index.html 目录中,运行:

reload -b
Run Code Online (Sandbox Code Playgroud)

它将启动一个服务器,每次您保存更改时都会刷新该服务器。

如果您在服务器或其他任何地方运行它,还有许多其他选择。查看参考以获取更多详细信息!


小智 12

假设你已经安装了fswatch(brew install fswatch),用于OS X的Handy Bash单行程序.当有更改时,它会监视任意路径/文件并刷新活动的Chrome标签:

fswatch -o ~/path/to/watch | xargs -n1 -I {} osascript -e 'tell application "Google Chrome" to tell the active tab of its first window to reload'
Run Code Online (Sandbox Code Playgroud)

在此处查看有关fswatch的更多信息:https://stackoverflow.com/a/13807906/3510611


小智 11

http://livereload.com/ - 适用于OS X的本机应用程序,适用于Windows的Alpha版本.开源于https://github.com/livereload/LiveReload2

  • 很酷,但 10 美元?真的吗?是的。 (2认同)
  • 我还创建了一个免费的 Live Reload(意外名称冲突)浏览器插件,它可以免费执行相同的操作:https://github.com/blaise-io/live-reload#readme (2认同)

小智 10

通过在文档中添加单个元标记,您可以指示浏览器以提供的间隔自动重新加载:

<meta http-equiv="refresh" content="3" >
Run Code Online (Sandbox Code Playgroud)

这个元标记位于文档的head标记内,将指示浏览器每三秒刷新一次.

  • 这也适用于本地文件。对我来说,这是正确的答案。 (2认同)
  • 这对于快速原型制作非常有效;然而,由于刷新是按计划进行的(而不是响应保存事件),因此使用 Chrome DevTools 的能力受到限制。 (2认同)

Kon*_*rin 10

使用Gulp来查看文件和Browsersync来重新加载浏览器。

步骤是:

在命令行中执行

npm install --save-dev gulp browser-sync

使用以下内容创建gulpfile.js

var gulp = require('gulp');
var browserSync = require('browser-sync').create();
var reload = browserSync.reload;

gulp.task('serve', function() {
  browserSync.init({
    server: {
      baseDir: "./"
    }
  });

  gulp.watch("*.html").on("change", reload);
});
Run Code Online (Sandbox Code Playgroud)

吞服

编辑 HTML,保存并查看您的浏览器重新加载。魔术是通过将特殊标签即时注入到您的 HTML 文件中来完成的。

  • 你把 gulpfile.js 放在哪里? (3认同)

Man*_*lon 8

下面几行就可以解决这个问题:

var bfr = '';
setInterval(function () {
    fetch(window.location).then((response) => {
        return response.text();
    }).then(r => {
        if (bfr != '' && bfr != r) {
            window.location.reload();
        }
        else {
            bfr = r;
        }
    });
}, 1000);
Run Code Online (Sandbox Code Playgroud)

每秒将当前响应文本与先前缓冲的响应文本进行比较,如果源代码有任何更改,将重新加载页面。如果您只是开发轻量级页面,则不需要任何重型插件。


小智 6

如果您正在使用 Visual Studio Code(我强烈推荐用于 Web 开发),有一个由 Ritwick Dey 开发的名为Live Server的扩展,下载量超过 900 万次。只需安装它(建议之后重新启动 vs code),然后右键单击您的主 HTML 文件,就会有一个选项“使用 Live Server 打开”,单击它,您的网站将自动在浏览器中打开本地服务器。


Ser*_*ndt 5

实况 Chrome扩展可以很容易地设置为监控本地文件的更改。


S.G*_*ami 5

如果您使用的是 GNU/Linux,您可以使用一个非常酷的浏览器Falkon。它基于Qt WebEngine。它就像 Firefox 或 Chromium - 除了在文件更新时自动刷新页面。无论您使用 vim、nano 还是 atom、vscode、括号、geany、鼠标垫等,自动刷新都无关紧要。

在 Arch Linux 上,您可以非常轻松地安装 Falkon:

sudo pacman -S falkon
Run Code Online (Sandbox Code Playgroud)

这是快照包。


归档时间:

查看次数:

57246 次

最近记录:

6 年,1 月 前