目前我正在使用Javascript和Ajax来获取一些数据并将其呈现在一个新窗口中。我试图在打开一个新窗口之前关闭OpenFileWindow()中的窗口,但是当它找到窗口对象时,所有属性和方法都会给出一个权限被拒绝的错误。
我相信它与使用Ajax调用的作用域有关,就像我在XMLHttpRequest之前打开窗口一样,没有问题。
我不知道该怎么办,我搜索了很多。有人有什么建议吗?感谢。
打开
var newWin = null;
function View_onClick(propId, url) {
var param = "propId=" + propId;
param += "&filename=" + url;
var xhr = new XMLHttpRequest();
xhr.open("POST", "GetActivityFileName.ashx", false);
xhr.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
xhr.onreadystatechange = function() {
if (xhr.readyState == 4) {
if (xhr.status == 200) {
if (xhr.responseText == "") {
alert("Sorry unable to find file.");
return false;
}
else {
OpenFileWindow(xhr.responseText)
return false;
}
}
}
}
xhr.send(param);
return false;
}
function OpenFileWindow(fileUrl) {
if(newWin != null)
newWin.close();
newWin = window.open(fileUrl);
newWin.focus();
}
答案 0 :(得分:0)
如果您打算重新使用窗口,为什么不给它命名。
如果您给出与window.open,
的第二个参数相同的名称,它将重新使用该窗口。
答案 1 :(得分:0)
这个怎么样?如果窗口仍处于打开状态,请更改URL。否则,打开窗口并加载URL。
function OpenFileWindow(fileUrl) {
if(newWin == null || newWin.closed)
newWin = window.open(fileUrl);
else
newWin.location.replace(fileUrl);
newWin.focus();
}