我不是那么喜欢JavaScript而且我有以下问题。
在JSP页面中,我有一些像这样的“链接”:
<tr onmouseout="Javascript: this.style.background='#EAEFFF'; this.style.color='#003399';" onmouseover="Javascript: this.style.background='#003399'; this.style.color='#FFFFFF'; this.style.cursor='hand';" style="background-color: #EAEFFF;" onclick="Javascript: document.location.href='edi.do?serv=4.1';">
<td>
<!--A HREF="edi.do?serv=4.1" class="linkBlue" onMouseOver="self.status='Comunicazioni'; return true"-->
Comunicazioni
</td>
</tr>
正如您在前面的代码段中看到的那样,链接尚未通过经典 a href 实现,但取而代之的是,它使用此表达式由JavaScript完成:
onclick="Javascript: document.location.href='edi.do?serv=4.1';"
所以,如果我说的是错误的断言,请更正,我认为(当用户点击 tr 时) Javascript:,它会执行以下JavaScript操作打开链接。这是正确的解释吗?
它有效,但我的问题是,在做之前,我必须执行一个特定的 loadingPopUp() JavaScript函数定义到
<script type="text/javascript">...</script>
我页面的部分。所以我的问题是:如何在 Javascript:document.location.href ='edi.do?serv = 4.1'; 之前执行 loadingPopUp()功能 onclick 事件?
TNX
答案 0 :(得分:1)
将onclick
事件更改为:
onclick="changeLocationTo('edi.do?serv=4.1')"
创建一个新的js函数:
function changeLocationTo(newLocation)
{
loadingPopUp();
// you may add an timeout here or to handle a popup action like closing it
document.location.href = newLocation;
}
答案 1 :(得分:0)
是的,你的断言是完全正确的。但是我认为如果你在更改url之前调用你的函数那么这将是不正确的方法,因为第二个函数将在你的 loadingpopup 函数之后立即执行并将用户重定向到不同的页面,所以我认为你的目的是打开弹出窗口将无法完成。
所以试试这个
方式1:如果您想加载弹出窗口并立即重定向用户
function fnOpenNewLink(){
loadingPopUp();
document.location.href='edi.do?serv=4.1';
}
方式2:如果您想加载弹出窗口,然后根据您的要求重定向用户。
function fnOpenNewLink(){
loadingPopUp(function(){
document.location.href='edi.do?serv=4.1';
});
}
function loadingPopUp(callback){
//your stuff
//when everything is done, just call the callback
callback();
}