這週一早晨,我努力理解爲什麼followng線在IE中,而不是在FF。
<a class="button" href="#" onclick="setMaintenanceMode(false);">disable</a>
在IE和FF,當你將鼠標懸停在該按鈕的網址...
http://localhost:8080/mainapp/secure/gotoDevice.action?hardwareId=1&storeCode=2571#
當單擊該按鈕,下面的方法被稱爲...
function setMaintenanceMode(enabled) {
var url = '<s:url action="secure/setMaintenanceMode"/>' + '&ModeEnabled=' + enabled;
document.location.href = url;
}
是docuement發送到是(兩個瀏覽器)的網址...
/mainapp/secure/gotoDevice.action?hardwareId=1&storeCode=2571&ModeEnabled=false
問題是,在IE中struts action setSetCode()的方法被調用,但是從FF它不是!如果我刪除FF作品以上的哈希ahref,但IE不會(href =「#」)。
我試過將'&ModeEnabled='
更改爲'&ModeEnabled='
,但沒有成功。 我看過谷歌和struts論壇,但沒有成功。
我很想試試所有的ahref,並用Dojo按鈕替換它們,看看它是否有效,但在此之前,我只是想知道是否有人可以指出原因。
我的猜測是,ahref是錯誤的使用,但爲什麼?
如果任何人都可以幫助我理解爲什麼,但將不勝感激。
感謝 傑夫·波特
編輯:返回false是解決方案的一部分。這個問題似乎是因爲網址..
/mainApp/secure/setMaintenanceMode.action?hardwareId=5&storeCode=2571&ModeEnabled=true
有它裏面的&
,如果我去這個網址,因爲它是,那麼它在IE中,而不是在FF。
如果我同時更改爲&
那麼它在IE & FF中工作。
如果我更改爲&
,那麼它仍然在IE中工作,但不是FF。
任何想法?
注:
似乎支柱2.0.9不支持對<s:url
標籤的屬性escapeAmp
:
默認請求參數將使用轉義&符號被分離(即,
&
)。這對於XHTML合規性是必需的,但是,當使用由<s:property>
標記生成的此標記所生成的URL時,應使用escapeAmp
屬性來禁用&符號轉義。
soultion:return false
onclick並升級到新的struts +設置escapeAmp
param。 其他,url = url.replace("&", "&");
。
除非你'回報setMaintenanceMode(...' – Anonymous 2010-01-18 09:47:47