通过wicket动态编写脚本src
我希望我的页面将javascript动态加载到我的正文中:通过wicket动态编写脚本src,wicket,Wicket,我希望我的页面将javascript动态加载到我的正文中: <script type= "text/javascript" src="this path should be decided from wicket dynamically"/> 我正在使用wicket1.4版,因此JavaScriptResourceReference在我的版本中不存在(供我检查,它不是') 我怎样才能解决这个问题? 提前谢谢:)。我不确定我是否完全理解了。 如果在加载页面后尝试创建脚本并将其附加
<script type= "text/javascript" src="this path should be decided from wicket dynamically"/>
我正在使用wicket1.4版,因此JavaScriptResourceReference在我的版本中不存在(供我检查,它不是')
我怎样才能解决这个问题?
提前谢谢:)。我不确定我是否完全理解了。 如果在加载页面后尝试创建脚本并将其附加到正文中,则应按以下方式执行:
<script type="text/javascript">
function load_js() {
var element = document.createElement("script");
element.src = "scripts/YOUR_SCRIPT_SRC.js"; // <---- HERE <-----
document.body.appendChild(element);
}
// Wait for the page to be loaded
if(window.addEventListener)
window.addEventListener("load",load_js,false);
else if(window.attachEvent)
window.attachEvent("onload",load_js);
else
window.onload = load_js;
</script>
函数加载_js(){
var元素=document.createElement(“脚本”);
element.src=“scripts/YOUR_SCRIPT_src.js”;//完全满足您的需要
您的标记中不需要任何内容,只需将HeaderContributor
添加到页面中即可
更新:对于Wicket 1.5,请参见,但它是这样的:
public class MyPage extends WebPage {
public MyPage() {
}
public void renderHead(IHeaderResponse response) {
response.renderJavaScriptReference(new PackageResourceReference(YuiLib.class,
"yahoo-dom-event/yahoo-dom-event.js"));
response.renderCSSReference(new PackageResourceReference(AbstractCalendar.class,
"assets/skins/sam/calendar.css"));
}
}
如果您想将
元素放在主体中,只需将其声明为WebMarkupContainer
,并添加AttributeModifier
来设置src
属性。尽管在这种情况下wicket不会为您生成相对URL,但您必须自己生成。我在答案中指定了我的注释
您可以使用以下代码段:
WebMarkupContainer scriptContainer = new WebMarkupContainer("scriptContainer ");
scriptContainer .add(new AttributeAppender("type", Model.of("text/javascript")));
scriptContainer .add(
new AttributeAppender("src", urlFor(
new JavaScriptResourceReference(
YourClass.class, "JavaScriptFile.js"), null).toString()));
add(scriptContainer );
以及相应的html:
<script wicket:id="scriptContainer "></script>
只需更改字符串JavaScriptFile.js
即可加载任何其他Javascript文件。看看我的问题……答案是:最重要的是从服务器端(通过wicket)获取src动态。你的anwser对我没有帮助……不幸的是,这只适用于Wicket 1.5之前的版本,并且只在头部添加Javascript文件。@rotsch我们确实需要一个版本化的Wicket标记。谁是你的class.class?包含scriptContainer的面板?是的,例如。它只是作用域,以及用于标识你的res的名称来源。