问题:任何想法如何在页面加载时不触发confirmOption
功能,而仅在单击按钮时触发它?
所以在我的html身上我有:
<Body>
<a href="#" id="btn_YES" onclick="<%="send('YES','" + rm.getAction ("YES") + "'); return (false);"%>" class="actionBtn"><span><span>Yes</span></span></a> 
<a href="#" id="btn_NO" onclick="<%="send('NO','" + rm.getAction ("NO") + "'); return (false);"%>" class="actionBtn"><span><span>No</span></span></a> 
</Body>
一直运行正常的Javascript函数:
function send(button, url) {
if (opener.document && opener.document.forms[0] && (opener.document.forms[0].elements['sessionToken'] || opener.document.forms[0].elements['screenID']))
{
opener.answer(button, url);
window.close();
} else {
return false;
}
}
getAction
和confirmOption(String option)
在java中声明。如果评估confirmOption
,则会在控制台YES
或NO
function setConfirm(userSelection){
if(userSelection="YES") result = "<%=mb.confirmOption("YES")%>";
if(userSelection="NO") result = "<%=mb.confirmOption("NO")%>";
}
当我加载页面时,为什么要在我的控制台中打印:
YES
NO
,甚至在我点击按钮之前?我的java断点被触发了,所以我可以看到该方法是在页面加载时进行评估的 - 当它不应该时,因为它应该在单击按钮时被触发。
当我点击按钮时,我的断点未被触发,我被发送到相关页面。
任何想法如何在页面加载时不触发confirmOption
功能,而仅在单击按钮时触发它?
答案 0 :(得分:0)
他们不会被评估为负载。一旦浏览器在加载过程中找到它们,它们就会被评估,尽管你可以推迟评估,在上面你可以实际调用函数删除引号
答案 1 :(得分:0)
confirmOption函数是您的服务器端函数,必须执行并转换为浏览器结束代码之前的值,因此,也许您可以使用ajax发布到servlet来触发它,而不是使用它这样。