修改功能输出 - 检查源 - Javascript- HTML - 谷歌浏览器

时间:2016-07-20 16:25:28

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

我想修改函数的输出(只说RANDOM示例,为任何代码错误道歉):

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

-from false to true甚至让页面有机会删除页面上的任何代码。我怎样才能这样做,以便我可以在页面的最开头将代码附加到页面上,以强制在实际页面上实现这些特定功能的每个输出?

这绝对是可能的,我不确定函数在哪里,但是你可以在页面上实际看到参数的元素,它看起来并不是服务器端,它只是它的完成方式。我读了很多文章,但很多文章并没有真正帮助我。

我知道事件监听器断点,如果我选择正确的断点,它就是问题。

谢谢你,我真的很感激,如果你能为我解释这个解释,即使我理解HTML和JavaScript的标准,我仍然是一个大规模的初学者。这是我一直想尝试的东西。

1 个答案:

答案 0 :(得分:1)

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

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

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

示例1(功能声明):

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

function hasRemainder(first, second) {
    return (first % second != 0);
}

console.log(hasRemainder(10, 5));
  

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

Script First Statement

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

hasRemainder = function() {
    return true;
}

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

  

此时的输出为true,如您所料。

示例2(功能表达式):

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

使用 Cmd + 选项 + F (Mac)或 Ctrl + 搜索功能Shift + F (Windows)。

Search

当您在包含函数表达式的文件中时,在函数末尾添加一个断点。当调试器暂停时,将覆盖功能运行到控制台中,然后按play继续执行。

Function Expression