调用document.location.replace()时FF中的NS_ERROR_MALFORMED_URI

jth*_*son 4 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]
Run Code Online (Sandbox Code Playgroud)

在iframe的父窗口上调用document.location.replace("/ relative/url")时会发生此错误.

它在FF2中也是可重现的,但IE8没有出现问题.

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

document.location.reload();
Run Code Online (Sandbox Code Playgroud)

jth*_*son 5

我想出的解决方案是编写一个绝对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)
}
Run Code Online (Sandbox Code Playgroud)