1

我正在为一个有两个域的站点编写一个 Greasemonkey 用户脚本。让我们说http://friendlyurl.comhttp://ugly.url.comhttp://friendlyurl.com/*重定向到http://ugly.url.com/*. 我想在用户脚本中包含的功能之一是使用 HTML5 将丑陋的 URL 重写为友好的 URL replaceState()

我的代码是:

(function() {
    if (history.replaceState) {
        var url = document.location.href.replace('ugly.url.com/', 'friendlyurl.com/');
        history.replaceState({}, document.title, url);
    }
})();

直到我意识到这违反了同源政策。我的问题是:是否有一种解决方法来切换站点的域,可能使用 GM_* API?显然,由于这是一个用户脚本,因此安全问题的规模要小得多。我目前的猜测是这是不可能的,但我想我会把问题放在那里。

4

1 回答 1

2

history.replaceState出于安全原因,不能用于更改域。甚至没有通过 GM API。

请参阅HTML 标准中有关 replaceState()规则的更多详细信息。

于 2012-06-18T14:58:38.750 回答