找不到隐藏的JavaScript函数

时间:2012-01-06 19:11:39

标签: javascript jsf-2

我在这里有一个奇怪的。我正在使用Primefaces组件库(不确定它的相关性)开发基于JSF2(Java)的系统,并且我有许多按钮在onclick事件上执行名为checkParams()的JavaScript函数。我需要编辑这个函数来重新调用它的代码并使它适应一些新添加的组件,但我不能在我的生活中实际找到JavaScript函数。我在NetBeans&我已经对该函数执行了项目搜索,返回的唯一搜索结果是对该组件的按钮引用。同样,我在Google Chrome的开发者控制台中搜索了该功能,该控制台再次仅返回按钮引用。我还尝试创建一个快速脏函数,在身体负载上调用alert(checkParams());,但Chromes控制台告诉我函数未定义。

然而,按钮工作正常,检查各种输入框并将信息提交给支持Java文件......

有没有人知道这个功能可能隐藏在哪里或者我如何找到它?

1 个答案:

答案 0 :(得分:0)

它可能包含在脚本文件中的JavaScript Closure中,该文件被执行然后从DOM中删除。隐藏'这将是一个巧妙的伎俩。它有点。但是,仅当checkParams()中的onclick不在onclick属性中时才会这样。它必须在JavaScript中分配。

如果是这种情况,您可能希望查看最初加载的脚本,并查看这些脚本。此外,为您自己的网站隐藏功能需要付出很多努力,除非您尝试确保人们不知道您如何验证您的参数。有一些方法可以模糊它来分配函数,而不是直接在文件中按名称定义它,但是,这又需要付出很多努力。

除此之外,我不确定我能找到很多东西来找到它。但我不确定实际情况如此。需要注意的一点是alert(checkParams())将警告返回值,这意味着可以定义函数。请尝试改为运行alert ( typeof ( checkParams ) )。如果是undefined,那么您的功能就不存在了。如果不是,你也可以console.log(checkParams)输出函数的toString(),这通常会显示代码。