Javascript 调用document.location.replace()时FF中出现NS\u错误\u格式错误的\u URI

Javascript 调用document.location.replace()时FF中出现NS\u错误\u格式错误的\u URI,javascript,firefox,Javascript,Firefox,我在FF 3.5.6中看到以下例外情况: uncaught exception: [Exception... "The URI is malformed" nsresult: "0x804b000a (NS_ERROR_MALFORMED_URI)" location: "JS frame :: http://x :: refreshPage :: line 193" data: no] 在iframe的父窗口上调用document.location.replace(“/relative

我在FF 3.5.6中看到以下例外情况:

uncaught exception: [Exception... "The URI is malformed"  nsresult: "0x804b000a (NS_ERROR_MALFORMED_URI)"  location: "JS frame :: http://x :: refreshPage :: line 193"  data: no]
在iframe的父窗口上调用document.location.replace(“/relative/url”)时发生此错误

它在FF2中也可以复制,但IE8没有显示出问题

编辑:相同上下文中的以下代码没有问题:

document.location.reload();
这是一个错误。必须将地址作为参数传递到
replace
方法中。否则,您实际上是在传入
未定义的
,正如“URI格式不正确”消息所表明的那样,这不是一个有效的地址


我不知道你想做什么。。。如果要重新加载页面,确实应该使用
location.reload()
。但是“用(无)替换当前位置的URI”是没有意义的。

我为此提出的解决方案是组成一个绝对URL并将其分配给window.location。Reload()导致内部重定向出现一些问题

function get_full_url(url_path)
{
    var loc = window.location;
    var url = "" + loc.protocol + "//" + loc.host + url_path;
    return url;
}

function refresh_page_absolute(url_path)
{
    window.location.href = get_full_url(url_path)
}

你用什么来代替它?它可能以一个Firefox无法处理的错误URI结束…我将用一个相对路径替换它。我注意到,如果使用绝对路径,则不存在此问题。我想这可能是一个iframe安全限制。我更新了这个问题,它被替换为一个相对URL。我只是暗示我在打电话。替换。
function get_full_url(url_path)
{
    var loc = window.location;
    var url = "" + loc.protocol + "//" + loc.host + url_path;
    return url;
}

function refresh_page_absolute(url_path)
{
    window.location.href = get_full_url(url_path)
}