[英]JSF ui:include and getElementById
我正在編寫ui:composition xhtml文件,以使用ui:include將其包含在不同的頁面中。 看來我無法使用getElementById引用此文件中javascript的標記,因為標記ID可能以父頁面的表單ID開頭。 有解決方法嗎?
我發布問題后找到了這個答案。 有幫助!
使用JSF 2.0在命名容器中獲取組件clientId的完整前綴
您可以這樣做:
var elem = document.querySelector( '[id$="-test"]' );
其中test
是不帶前綴的ID, -
是前綴分隔符。
上面的代碼將選擇“ id”屬性以"-test"
結尾的元素(例如<div id="form1-test">...</div>
)。
現場演示: http : //jsfiddle.net/8kyb2/
請注意, querySelector()
與attribute-ends-with選擇器配對使用的性能比getElementById()
慢。
如果您碰巧使用Apache的Tomahawk組件 ,並指定forceId="true"
,則標記ID將保持不變。 例如:
<t:inputText id="name" forceId="true" value="#{myBean.property}" />
將導致<input type="text" id="name" ... / >
。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.