我有一個.NET應用程序來搜索在點擊時彈出窗口中打開搜索結果的數據。在第一次點擊搜索按鈕,結果正確填充在新的彈出窗口 - 讓我們把它命名爲ResultPopup。在第二次搜索按鈕單擊時,結果不會填充到ResultPopup窗口 - 除非有對ResultPopup窗口的回發或新操作。Javascript window.open()不會在IE 8中顯示新內容,除非刷新
所有這一切都適用於FireFox。這裏是我的aspx搜索點擊功能(的onclick觸發)
protected void SearchBtn_Click(object sender, EventArgs e)
{
Session["RNum"] = RNumTxtBox.Text.Trim();
Session["Location"] = LocationTxtBox.Text.Trim();
Decimal dTemp;
if (!string.IsNullOrEmpty(QNumTxtBox.Text) &&
Decimal.TryParse(QNumTxtBox.Text, out dTemp))
{
Session["QNum"] = dTemp;
}
else
{
Session["QNum"] = 0;
}
Session["INum"] = INumTxtBox.Text.Trim();
Session["PNum"] = PNumTxtBox.Text.Trim();
Session["SValue"] = SRadBtnList.SelectedValue;
// sPageName is a class variable - predefined URL
// sTarWinName is a class variable - target window name for all search results
ScriptManager.RegisterStartupScript(Page, typeof(Page), "OpenSearchMain", string.Format("javascript: popSearchResultWindow('{0}', '{1}');", sPageName, sTarWinName), true);
}
繼承人是我的JavaScript函數:
function popSearchResultWindow(pageName, tarWinName) {
var sUrl = pageName;
var oSearchResultWin = window.open(sUrl, tarWinName, 'location=1,resizable=1', false);
// oSearchResultWin.location.reload(true);
// using reload or refresh will give javascript: permission denied (after 4-5 click)
oSearchResultWin.focus();
}
1)目標窗口名稱正確 - 第1次正確加載。問題是,它不會顯示第二,第三,第四,..搜索點擊新的數據,除非我手動刷新頁面。 2)我需要在一個目標窗口中顯示數據,並且我嘗試了您的建議,但遇到了錯誤。 var oReqSearchResultWin = window.open(sUrl,'_blank _media _parent _search _self _top','location = 1,resizable = 1',false); – user3179644
我使用'_search'作爲目標窗口名稱,但它只能在本地使用。在服務器應用程序池上,它的行爲相同 - 任何想法? – user3179644
我不確定爲什麼_search不適用於應用程序池。我認爲你需要取消註釋oSearchResultWin.location.reload(true);.彈出窗口被ie緩存,所以當你再次加載url時,它已經看到它已被加載。通過強制重新加載,它應該從Web服務器重新獲取頁面。 –