2012-01-06 93 views
0

我在這裏有一個奇怪的。我正在使用基於JSF2(Java)的系統使用Primefaces組件庫(不確定其相關性),並且我有一些按鈕在onclick事件上執行稱爲checkParams()的JavaScript函數。我需要編輯這個函數來重新使用它的代碼,並將它調整到一些新添加的組件,但是我實際上找不到JavaScript函數。我正在使用NetBeans &我已經執行了此功能的項目搜索,並且返回的唯一搜索結果是對此組件的按鈕引用。同樣,我在Google Chrome的開發者控制檯中搜索了該功能,該功能再次僅返回了按鈕引用。我也嘗試創建一個快速髒功能,在身體負載上調用alert(checkParams());,但是Chromes控制檯告訴我該功能未定義。找不到隱藏的JavaScript函數

但是按鍵很好地工作,檢查各個輸入框和提交信息爲後盾的Java文件...

是否有人在那裏此功能可隱藏任何想法或我怎麼能找到呢?

+1

你怎麼知道它叫'checkParams'?你能展示導致你相信的代碼嗎? – 2012-01-06 19:32:25

回答

0

它可能包含在JavaScript Closure中的腳本文件中,該腳本文件被執行並從DOM中刪除。這將是一個巧妙的方法來「隱藏」一點點。但是,只有onclick中的checkParams()不在onclick屬性中。它必須在JavaScript中分配。

如果出現這種情況,您會想要查看最初加載了哪些腳本,並查看這些腳本。另外,除非你試圖確保人們看不到你如何驗證你的參數,否則這是很多努力來隱藏自己的網站的功能。有很多方法可以對它進行模糊處理,以便不通過文件中的名稱直接定義該功能,但是,這又是一個很大的努力。

除了上述情況之外,我不確定有多少我可以說找到它。但我不確定這是否屬實。有一點需要注意的是alert(checkParams())會提醒返回值,這意味着函數可以被定義。改爲嘗試運行alert (typeof (checkParams))。如果那是undefined,那麼你的函數不存在。如果沒有,你也可以做console.log(checkParams)這應該輸出toString()這個函數,它會經常顯示你的代碼。

+0

謝謝你幫助我確定這個方法實際上並不存在,經過更仔細的檢查後,驗證就建立在輸入字段本身上了,這個輸入字段本身就是更新的。按鈕onclick =「checkParams()」參數或者是作爲待開發方法的佔位符,但從來不是或者是舊功能被刪除且引用永遠不會被刪除。無論哪種方式,你向我確認函數不存在。乾杯 – Ally 2012-01-08 17:08:30