JavaScript 不会在 Firefox 和 Safari 中重新加载帧

JavaScript won't reload frame in Firefox and Safari

本文关键字:新加载 加载 Firefox Safari JavaScript      更新时间:2023-09-26

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

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

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);">

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

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

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

来源: 窗口位置 - MDN # 方法

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

若要打开其他页面,可以使用以下命令:

window.parent.frames["list"].location = 'PAILReports.asp?'+params;