【问题标题】:Live Javascript edit in Safari?在 Safari 中进行实时 Javascript 编辑?
【发布时间】:2012-04-04 22:08:53
【问题描述】:

在 Chrome 中这是可能的,但我找不到在 Safari 中执行此操作的方法。可能吗?怎么样?

【问题讨论】:

    标签: javascript safari developer-tools


    【解决方案1】:

    最接近的选项是暂停 JavaScript 并从控制台执行命令。

    要打开 Safari 开发工具,请在 Windows 上按 CtrlAltCcommandoptionC Mac。或者在 Safari 首选项 -> 高级 -> 显示开发菜单的菜单栏中启用 Safari 开发命令。

    请参阅Apple's docs,了解如何使用其开发工具。

    与 Chrome 不同,Safari 调试器目前不支持单击脚本文件并就地编辑它的功能。但是,您仍然可以使用断点或暂停按钮停止执行,然后在控制台中执行代码以更改值,然后继续执行。

    例如,如果您有代码:

    var t = 1;
    (function(){
        var t = 2;
        console.log(t);  //* put break point on this line..    
    })();
    console.log(t);
    

    你只是一个断点,然后在控制台中运行t = 4,值4然后1被打印到控制台。

    【讨论】:

    • 嗯,我可以在 Chrome 中编辑 JS,但不能在 Safari 中。这就是我提出这个问题的原因。
    • 没错,对不起,我以为你想在页面上实时执行 JS,而不是更改加载的脚本。不,我认为您目前无法做到这一点。或许,您能做的最好的事情就是使用控制台更改 JavaScript 以更改代码调用的变量的值。
    • 是的,这就是我现在正在做的事情。
    • 按 command-option-c 打开 Safari 控制台,而不是 Safari 调试器,版本为 11.0.3。
    【解决方案2】:

    目前这是不可能的。

    【讨论】:

    • 现在是2018年了,所以……还是不行吗?
    • @JosephK。现在是2019年了,所以……还是不行吗?
    • 现在是2020年了,所以……还是不行吗?
    • 自 2020 年 4 月起,这在 Safari 中成为可能! webkit.org/web-inspector/local-overrides
    【解决方案3】:

    虽然 chrome 和 safari 都使用 webkit 作为引擎,但 chrome 对其进行了自定义和添加。 javascript 的实时编辑似乎就是其中之一。

    如果您仔细观察,chrome 和 safari 中的调试面板也有许多其他差异。一个清晰可见的变化是 chrome 中存在的设置图标,而 safari 中没有。

    【讨论】:

      【解决方案4】:

      从 2020 年 4 月起,这在 Safari 中成为可能!

      https://webkit.org/web-inspector/local-overrides/

      【讨论】:

      • 它不是根据本地覆盖代码执行的。是否需要任何额外的步骤才能做到这一点?
      【解决方案5】:

      在 Safari Technology Preview 15.4 中试用:

      console.log("I'm live!");
      

      输出

      > "I'm live!"
      

      【讨论】:

        猜你喜欢
        • 2011-01-02
        • 1970-01-01
        • 2011-06-14
        • 1970-01-01
        • 2014-04-03
        • 2010-11-30
        • 1970-01-01
        • 2014-11-21
        • 2012-04-29
        相关资源
        最近更新 更多