2010-03-25 74 views
1

工作,我有JSP頁面method = POSTaction='/mydir/mypage/nextpage'火狐3.6 - location.href不是JSP

我有一個按鈕:

<button title='Continue' onclick="this.form.perform.value='cancelButton'; javascript:doCloseWindow();">Continue</button> 

和JavaScript方法,如:

function doCloseWindow(){   
    location.href = "https://abc.xyz.com/mydir/?param=123";    
} 

它在Firefox 3.6中不起作用。點擊按鈕;它重定向到我在表單操作中提到的路徑。

隨着防篡改數據,我發現請求轉到URL(如在方法中)與GET,然後它重定向到表單的操作URL。

我添加的方法調用也返回false - javascript:doCloseWindow();return false

我累了各種組合像

window.location.href = "https://abc.xyz.com/mydir/?param=123"; 
window.document.location.href = "https://abc.xyz.com/mydir/?param=123"; 
document.location.href = "https://abc.xyz.com/mydir/?param=123"; 

但沒有成功。

+0

這是「火狐」,而不是「火狐」。 :-) – 2010-03-25 12:50:32

回答

1

在調用doCloseWindow之前刪除「javascript:」。

此時,您已經在此事件處理程序中執行了一些JavaScript代碼 - 嘗試再次告訴瀏覽器下面的代碼是JavaScript是沒有意義的。

+0

已刪除,仍然無法正常工作 – Anurag 2010-03-25 14:20:17

+0

「不能正常工作」,但症狀相同?在您對Dean J的回答的評論中,您提到「它將訪問該URL,但狀態將返回爲302,然後轉到其他一些默認URL」。 如果您的代碼正在將瀏覽器發送到正確的URL,但服務器正在重定向它,那麼您的代碼是正常的;要麼你使用的URL是錯誤的,要麼服務器正在做你沒想到的事情。 – Syntactic 2010-03-25 15:09:32

+0

我剛剛嘗試刪除JavaScript,如你所說,並在方法調用後使用「返回false」。此外,我刪除了部分'this.form.perform.value ='cancelButton'',然後只有它的作品。 我試圖在我的方法中設置上面的值,它再次提交表單,而不是去新的URL。 我不明白,每當我在調用location.href之前嘗試做一些其他操作時,它總是提交表單。 – Anurag 2010-03-26 10:01:29

0

試着改變你的JavaScript調用:

function doCloseWindow(){ 
    alert('here'); 
    location.href = "https://abc.xyz.com/mydir/?param=123"; 
    return false; 
} 

我不知道是否該功能實際上是運行。

+0

它涉及到的功能。我也可以在防篡改數據工具中看到這個URL。但它沒有被重定向到該URL。 我正在使用來代替

+0

非常感謝很多人......它結合您的建議和刪除this.form.perform ...部分後工作。但不明白爲什麼它會在調用location.href之前嘗試做某些事情來提交表單 – Anurag 2010-03-26 10:03:48