C# 除非刷新,否则Javascript window.open()不会在IE 8中显示新内容

C# 除非刷新,否则Javascript window.open()不会在IE 8中显示新内容,c#,javascript,asp.net,C#,Javascript,Asp.net,我有一个用于搜索数据的.NET应用程序,可在单击时在弹出窗口中打开搜索结果。在第一次单击搜索按钮时,结果将在新的弹出窗口中正确填充-我们将其命名为ResultPopup。在第二次搜索按钮单击时,结果不会在ResultPopup窗口上填充-除非ResultPopup窗口有回发或新操作 所有这些都可以在FireFox上正常工作。这是我的aspx搜索单击功能(触发器onclick) 以下是我的JavaScript函数: function popSearchResultWindow(pageName,

我有一个用于搜索数据的.NET应用程序,可在单击时在弹出窗口中打开搜索结果。在第一次单击搜索按钮时,结果将在新的弹出窗口中正确填充-我们将其命名为ResultPopup。在第二次搜索按钮单击时,结果不会在ResultPopup窗口上填充-除非ResultPopup窗口有回发或新操作

所有这些都可以在FireFox上正常工作。这是我的aspx搜索单击功能(触发器onclick)

以下是我的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) 您的名字有空格、破折号或其他标点符号

2) ie8不支持将“name”作为窗口中的第二个值。open()

你的代码应该是

var oSearchResultWin=window.open(sUrl,,'location=1,resizable=1',false)

如果要使用第二个参数: _空白 _媒体 _母公司 _搜寻 _自我 _顶

编辑: 您是否尝试过这样做:

var oSearchResultWin = false; 

function popSearchResultWindow(pageName, tarWinName) { 
if(oSearchResultWin && !oSearchResultWin.closed){ 
    oSearchResultWin.location.href = sUrl; 
    oSearchResultWin.location.name = tarWinName; 
} 
else { 
    var sUrl = pageName; 
    oSearchResultWin = window.open(sUrl, tarWinName, 'location=1,resizable=1', false); 
} 
oSearchResultWin.focus(); 
} 

谢谢你的帮助,马特。我稍微修改了代码,因为它仍然会给我“Javascript:Permission Denied”错误


1) 目标窗口名称正确-第一次正确加载。问题是它不会在第二、第三、第四、第二、第三、第三、第三、第三、第三、第三、第三、第三、第三、第三、第三、第三、第三、第三、第三、第三、第三、第三、第。。搜索单击,除非我手动刷新页面。2) 我只需要在一个目标窗口中显示数据,我尝试了您的建议,但出现了错误。var oReqSearchResultWin=window.open(sUrl,“\u blank”\u media\u parent\u search\u self\u top”,“location=1,resizable=1”,false);我使用“_search”作为目标窗口名,它可以工作,但只能在本地工作。在服务器应用程序池上,它的行为相同-有什么想法吗?我不确定为什么_搜索在应用程序池上不起作用。我认为您需要取消对oSearchResultWin.location.reload(true)的注释;。ie正在缓存弹出窗口,因此当您再次加载url时,它已经看到其已加载。通过强制重新加载,它应该从Web服务器重新读取页面。重新加载()仅适用于4-5个不同的搜索,然后出现“Javascript:权限被拒绝”。您尝试过这样做吗?var-oSearchResultWin=false;函数POPSearchResultTwinDow(pageName,tarWinName){if(oseArchResultTwin&!oseArchResultTwin.closed){oseArchResultTwin.location.href=sUrl;oseArchResultTwin.location.name=tarWinName;}否则{var sUrl=pageName;oseArchResultTwin=window.open(sUrl,tarWinName,'location=1,resizeable=1',false);}oSearchResultWin.focus();}
var oSearchResultWin = false; 

function popSearchResultWindow(pageName, tarWinName) { 
if(oSearchResultWin && !oSearchResultWin.closed){ 
    oSearchResultWin.location.href = sUrl; 
    oSearchResultWin.location.name = tarWinName; 
} 
else { 
    var sUrl = pageName; 
    oSearchResultWin = window.open(sUrl, tarWinName, 'location=1,resizable=1', false); 
} 
oSearchResultWin.focus(); 
} 
function popSearchResultWindow(pageName, tarWinName) {
var sUrl = pageName;
var oSearchResultWin = window.open(sUrl, tarWinName);
if (oSearchResultWin && !oSearchResultWin.closed) {
    try{
        oSearchResultWin.location.href = sUrl; oReqSearchResultWin.location.name = tarWinName;
    }catch (err){
        oSearchResultWin.location.reload(true);
    }
}
oSearchResultWin.focus();
}