我做JSF複合材料部件,簡單的東西用下面的代碼JSF複合材料部件的JavaScript的一部分時:(太FF)部分Chrome怪異的行爲調試
<cc:implementation componentType="timePickerComponent">
<div id="#{cc.clientId}" style="#{cc.attrs.style}">
<h:outputScript name="js/timepicker/timepicker_helper.js"/>
<p:autoComplete id="timepicker"
scrollHeight="200"
onfocus="openAutocompletePanel(this);"
widgetVar="#{cc.attrs.widgetVar}"
completeMethod="#{cc.completeMethod}"
value="#{cc.timeLocal}"
size="5"/>
</div>
</cc:implementation>
而且timepicker_helper.js
只含有單一的功能:
function openAutocompletePanel(field){
console.log("ups");
console.log(field);
}
當我嘗試調試在Chrome開發者工具openAutocompletePanel
功能,在開頭或不工作的函數中定義,即斷點。但函數本身被調用,它打印到控制檯。
當我在openAutocompletePanel
的中間添加的行debugger;
,它已停止在這一點上,但不是文件timepicker_helper.js
Chrome在打開的文件VM3339
。
有我的屏幕快照:
這不是我第一次調試JSF的Chrome瀏覽器JavaScript,但我第一次認識了這個問題。什麼會導致這種行爲?
謝謝。
更新:
好的,這是我的錯。 BalusC說,很多時候,當你有的JavaScript在複合材料部件應指定target="head"
否則會被加載多個時間。 當我將加載語句更改爲<h:outputScript name="js/timepicker/timepicker_helper.js" target="head"/>
時,問題消失了。 我不能認爲這是答案,因爲我不知道100%,如果我是對的。
它與另一個普通的jsf組件而不是p:autocomplete一起工作嗎? – Kukeltje
@Kukeltje,no。我嘗試添加'',並打開帶有不同名稱VM4037的選項卡,但未到達實際文件。 –
Anatoly
我懷疑它是有意的行爲,但不確定。剛剛檢查了我的舊代碼,這是我第一次在這種情況下使用'javascript',以及複合組件中的JSF元素並通過''加載頁面。 –
Anatoly