为什么javascript函数评估onload

时间:2012-09-21 18:20:02

标签: java javascript html jsp

问题:任何想法如何在页面加载时不触发confirmOption功能,而在单击按钮时触发它?

所以在我的html身上我有:

<Body>
<a href="#" id="btn_YES" onclick="<%="send('YES','" + rm.getAction ("YES") + "'); return (false);"%>" class="actionBtn"><span><span>Yes</span></span></a>&#160;
            <a href="#" id="btn_NO" onclick="<%="send('NO','" + rm.getAction ("NO") + "'); return (false);"%>" class="actionBtn"><span><span>No</span></span></a>&#160;
</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;
                            }
                        }   

getActionconfirmOption(String option)在java中声明。如果评估confirmOption,则会在控制台YESNO

中输出
function setConfirm(userSelection){
        if(userSelection="YES") result = "<%=mb.confirmOption("YES")%>"; 
        if(userSelection="NO") result = "<%=mb.confirmOption("NO")%>";
}

当我加载页面时,为什么要在我的控制台中打印:

YES
NO

,甚至在我点击按钮之前?我的java断点被触发了,所以我可以看到该方法是在页面加载时进行评估的 - 当它不应该时,因为它应该在单击按钮时被触发。

当我点击按钮时,我的断点未被触发,我被发送到相关页面。

任何想法如何在页面加载时不触发confirmOption功能,而在单击按钮时触发它?

2 个答案:

答案 0 :(得分:0)

他们不会被评估为负载。一旦浏览器在加载过程中找到它们,它们就会被评估,尽管你可以推迟评估,在上面你可以实际调用函数删除引号

答案 1 :(得分:0)

confirmOption函数是您的服务器端函数,必须执行并转换为浏览器结束代码之前的值,因此,也许您可​​以使用ajax发布到servlet来触发它,而不是使用它这样。