0

我在 Firefox 和 Safari 中使用以下代码时遇到问题。该页面列出了项目,此代码允许用户过滤结果。因此,用户选择他们的过滤器项目,然后点击 GO 按钮,带有结果的框架应该重新加载只有被过滤的项目。该框架是通过此代码所在的一个单独的 ASP 页加载的。

这在 Internet Explorer 中运行良好,但在 Firefox 或 Safari 中运行良好 - 没有任何反应。我已经运行了Firebugif ,并且在语句中正确生成了参数。似乎重新加载永远不会发生。当我自己运行那个单独的框架/ASP 并使用 URL 手动输入参数时,它在 Firefox 中运行良好。所以这似乎与 reload 语句有关。我究竟做错了什么?

function Reloadit() {
    var params = "";
    if (Payload.value != "") {
        params +=('Payload='+Payload.value)+'&'
    }
    if (Status.value != "") {
        params +=('Status='+Status.value+'&')
    }
    if (Assignee.value != "") {
        params +=('Assignee='+Assignee.value+'&')
    }
    if (SearchWord.value != "") {
        params += 'SearchWord='+SearchWord.value+'&SearchField='+SearchField.value+'&'
    }
    window.parent.frames["list"].location.reload('PAILReports.asp?'+params);
}

<input type="button" style="MARGIN-TOP:6px" value="GO" onclick="Reloadit(true);">
4

1 回答 1

0

IE 在这里有问题,因为你的代码一开始就不应该工作。

window.location.reload(forceget)是应该做的:

从当前 URL 重新加载文档。forceget是一个布尔值,当它是 时true,会导致页面总是从服务器重新加载。如果false指定或未指定,浏览器可能会从其缓存中重新加载页面。

来源:window.location - MDN # 方法

如您所见,参数 forreload()不应解释为 URL。

要打开不同的页面,可以使用以下命令:

window.parent.frames["list"].location = 'PAILReports.asp?'+params;
于 2012-05-14T17:26:18.187 回答