【问题标题】:Chrome not updating the page after editing JS in DevTools在 DevTools 中编辑 JS 后 Chrome 不更新页面
【发布时间】:2017-04-04 21:46:33
【问题描述】:

我一直通过使用 Chrome DevTools 编辑网站的 JS 文件来检查是否有服务器验证(或只有客户端验证)。

这次我在点击 IDE 中的某个按钮并保存更改后添加了一个警报。当我单击某个按钮时,警报成功显示。然后我在该站点上打开 DevTools,找到源代码,找到一个名为 all_views.min.js 的文件(这是 Grunt 从所有 JS 视图文件生成的文件)。 Ctrl+f+"alert" 显示了我刚刚添加的警报。但是当我在那之后添加另一个警报并使用 ctrl+s 保存 JS 文件时,单击提到的按钮后我仍然只收到 1 个警报。

这可能是什么原因? 是的,JS 文件已生成,但我必须在更改视图脚本后手动(在本地,而不是在浏览器中)生成它。所以浏览器不应该关心。

我不能给你整个脚本,但这是我要更改的函数:

changeMap: function(a) {
    var b = this;
    $(this.el).find(".mapy-single-map").html("");
    var c = $(a.currentTarget).siblings(".btn-dark-blue")
      , d = $(a.currentTarget)
      , e = $(d).attr("map");
    alert(e), // alert added in the code
    alert("fdfgfdfd"), // alert added in DevTools
    this.collection.getDisplaysForMap(e).then(function() {
        b.renderPlayers(),
        $(d).removeClass("mapy-white-btn"),
        $(d).addClass("btn-dark-blue"),
        $(c).removeClass("btn-dark-blue"),
        $(c).addClass("mapy-white-btn"),
        $(b.el).find(".mapy-single-map").css("background-image", 'url("./graphics/mapy_ciemne/ciemne' + e + '.jpg")')
    })
},

不,我没有编辑 all_views.min.js 的美化版本。

【问题讨论】:

  • 你为什么用逗号结束你的alert 语句?这不是无效的语法吗?
  • @KayceBasques 我也尝试使用分号,但那是 Grunt 生成的。在我的 JS 视图中,我使用分号而不是逗号。所以我猜如果这是一个坏主意,Grunt 不会转换他们。此外,当我没有添加另一个警报而是将 alert(e) 更改为 alert("|"+e) 时,我得到了相同的结果 - 页面上没有任何变化。
  • 可能是缓存问题。尝试清除浏览器缓存并重新加载页面。开发工具中有一个选项可以在开发工具打开时禁用缓存。当开发工具打开时,您还可以长按浏览器中的刷新按钮,您会看到一个下拉菜单,其中包含专门为该选项卡清除缓存并重新加载的选项。
  • 您收到了哪个提醒?
  • @Gambit 我在 Chrome 中从头清除了所有缓存,转到页面,将 alert(e) 更改为 alert(e+"|")。没啥事儿。长按referh按钮,选择“Empty cache and hard reload”,在DevTools中更改JS,保存JS,点击一个按钮。警报没有改变。进入 DevTools 的设置,设置“禁用 DevTools 上的缓存”,刷新页面,在 JS 中更改并保存警报,单击一个按钮。警报没有改变。

标签: google-chrome-devtools


【解决方案1】:

please look this: 您可以在 Chrome 调试器中的 Sources 选项卡下动态编辑 javascrpit 文件,但是如果您刷新页面,您的更改将会丢失,在进行更改之前暂停页面加载

【讨论】:

  • 我知道。我正在 DevTools 中的 Sources 选项卡下动态编辑 JS。而且我没有刷新页面。我知道这是因为如果我刷新页面,源代码会回到旧版本,但它不会那样做。但是网页还是一样。
  • 1) 加载页面 2) 转到源设置断点(但在未附加事件的地方,init 函数的第一行或类似的地方) 3) 刷新页面并检查浏览器是否停止执行在您的断点上,如果是,请更改您的 javascript 并继续执行 js
  • 我认为 chrome 实时编辑无法正常工作。因此,您必须在文件的第一行或某些 init 函数(带断点)处停止加载 javascript 文件,而不是在源代码内部进行更改(保存),然后让浏览器加载文件。
  • 我想我有问题,因为看起来源选项卡看起来被缓存了,我必须重新加载并关闭开发工具,随机尝试刷新源代码。我猜它是一个错误?
猜你喜欢
  • 2019-02-01
  • 2012-04-14
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-01-27
  • 1970-01-01
  • 2020-06-07
  • 2020-11-23
相关资源
最近更新 更多