【问题标题】:Modify Function Output - Inspect Source - Javascript- HTML - Google Chrome修改函数输出 - 检查源代码 - Javascript- HTML - Google Chrome
【发布时间】:2016-11-23 23:09:19
【问题描述】:

我想修改函数的输出(只是说随机示例,对任何代码错误表示歉意):

ng-if=!pfile.isgame
ng-if=! pfile.examplefile

- 在页面甚至有机会在页面上放置任何代码之前从 false 变为 true。我怎样才能做到这一点,以便我可以将代码附加到页面的最开头,以强制这些特定功能的每个输出在实时页面上变为真?

这绝对是可能的,我不确定该函数在哪里,但是您可以在页面上实际看到参数的元素,而且它看起来根本不是服务器端的,它只是它是如何完成的。我阅读了很多文章,但其中很多都没有真正帮助到我。

我知道事件侦听器断点,如果我选择了正确的断点,这只是问题所在。

谢谢你,我真的很感激,如果你能帮我解释一下,即使我确实理解 HTML 和 JavaScript 到一个好的标准,我仍然是一个大量的初学者。这是我一直想尝试的。

【问题讨论】:

    标签: javascript html debugging dom google-chrome-devtools


    【解决方案1】:

    希望我正确理解了您的问题。有几个选项,答案取决于函数是声明还是表达式。

    如果它们是声明,它们会在第一次传递时被提升到顶部,这样当您的代码开始执行时,该函数已经存在,您可以尽早覆盖它。

    如果是函数表达式,则必须等到函数表达式创建完成。

    示例 1(函数声明):

    我的页面上有一个函数声明,如果计算中有余数则返回true,否则返回false。我在页面加载时执行它。这里的输出是false

    function hasRemainder(first, second) {
        return (first % second != 0);
    }
    
    console.log(hasRemainder(10, 5));
    

    我现在在 DevTools 中添加了Script First Statement 断点,以便调试器在任何脚本运行之前中断:

    我重新打开页面,执行暂停。我现在在控制台选项卡中运行以下代码来覆盖hasRemainder 函数,以便它始终返回true

    hasRemainder = function() {
        return true;
    }
    

    最后,我点击播放继续执行。您可以长按以选择 Long Resume,它会跳过断点 500 毫秒,这样您之后就不会因为单个断点而被捕获。

    是的

    这次的输出是true,正如你所料。

    示例 2(函数表达式):

    这次我们不能依赖早期的断点,因为这个函数还不存在。我们需要在函数表达式创建后添加断点。

    使用 Cmd+Opt+F (Mac) 或 Ctrl+ 搜索函数Shift+F (Windows)。

    当你在带有函数表达式的文件中时,在函数的末尾放置一个断点。当调试器暂停时,在控制台中运行覆盖函数,然后按播放继续执行。

    【讨论】:

      猜你喜欢
      • 2013-11-29
      • 1970-01-01
      • 2016-07-30
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-06-14
      • 2017-09-24
      • 1970-01-01
      相关资源
      最近更新 更多