我有一个JavaScript函数,它会将<span>
内的文本拆分,并为每个部分生成3 <span>
。
第一次加载labelA visible和labelB的页面不可见。 用户将执行操作以告知他想要查看labelB并隐藏标签A.
用户单击提交按钮以显示labelB后,页面将再次呈现,JS将立即再次为labelB拆分文本。
直到这里都很好,但是当我导航到另一个页面然后我尝试回来时(使用wicket按钮而不是浏览器),因为仍然选择“bundle”,labelA必须不可见。
当页面加载几秒钟时,标签A出现,JavaScript完成工作,渲染完成后,LabelA现在被隐藏,LabelB可见,但文本不是3部分。
在JS文件中我使用window.onload以便在dom渲染后执行该函数但它不起作用。渲染完成后,wicket隐藏了labelA并显示了labelB,但是在labelB出现之前执行了JS函数,那么labelB文本只在一个<span>
中。
标签可见后有没有办法执行JavaScript函数?
在执行Javascript之前
<span wicket:id="labelA">some text here</span>
在这种情况下,labelB将被隐藏
执行Javascript后
<span class="style1">some</span>
<span class="style2>text</span>
<span class="style3>here</span
//text value comes from DB
Label labelA = new Label("labelA", text){
@Override
protected void renderHead(final IHeaderResponse response)
{adding javascript into header}
};
if(!text.equals("simple")
{
labelA.setVisible(false);
}
add(labelA);
Label labelB = new Label("labelB", text){
@Override
protected void renderHead(final IHeaderResponse response)
{adding javascript reference}
};
if(!text.equals("bundle")
{
labelB.setVisible(false);
}
add(labelB);