2011-11-03 3 views
3

javacript가 head 태그에서 작동하지 않기 때문에 본문에 script-tag를 넣어야합니다. 개찰구 1.5 다음 코드로 Wicket 1.5 Javascript 파일의 본문 태그

는 더 이상 지원되지 않습니다

add(new JavaScriptReference("wz_tooltip", new JavaScriptResourceReference(BaseTemplate.class, "wz_tooltip.js"))); 

클래스 JavaScriptReference가 더 이상 존재하기 때문입니다.

분명히 새로운 renderHead 방법을 사용할 수 없습니다. 지금까지

내 해결 방법 :

WebMarkupContainer script = new WebMarkupContainer("script"); 
script.add(new AttributeAppender("type", Model.of("text/javascript"))); 
script.add(new AttributeAppender("src", Model.of("wz_tooltip.js"))); 
add(script); 

떨어져 작동하지 않습니다에서 정말 추악한; javascript 파일을 찾을 수 없습니다.

다른 해결 방법이 있습니까? 아니면이를 수행하는 데 올바른 방법이 있습니까?

답변

6

리소스 참조가있는 urlFor를 사용해 보셨습니까? 뭔가가 ..

script.add(new AttributeAppender("src", urlFor(new JavaScriptResourceReference(BaseTemplate.class, "wz_tooltip.js"), null).toString())); 

Wicket의 복잡한 자원 관리로 인해 현재 사용중인 방법을 사용하지 않을 것으로 기대됩니다. 또한 일을하는 "올바른"다른 방법이있을 수 있지만 제 3 자 자바 스크립트가 배치에 까다롭고 일부 스크립트의 경우이 방법으로 돌아갈 필요가 있다는 것을 자주 발견했습니다.

예를 들어 내가 사용하는 스크립트 중 하나는 페이지의 마지막 요소 여야합니다.

+0

답변 해 주셔서 감사합니다. 이제 리소스를 찾습니다. 다음은 컴파일 가능한 코드입니다 (ResourceReference는 abstract 클래스이고 urlFor는 CharSequence를 제공합니다) :'script.add (새 AttributeAppender ("src", urlFor (new JavaScriptResourceReference (BaseTemplate.class, "wz_tooltip.js"), null) .toString)); ' – rotsch

+0

컴파일 가능한 코드로 업데이트 - 저는 아직 1.5로 마이그레이션하지 않았기 때문에'ResourceReference'가 많이 바뀌 었음을 알지 못했습니다. – jbrookover

+0

누가 스크립트입니까? WebMarkupContainer? –