我正在为一个有两个域的站点编写一个 Greasemonkey 用户脚本。让我们说http://friendlyurl.com
和http://ugly.url.com
。http://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?显然,由于这是一个用户脚本,因此安全问题的规模要小得多。我目前的猜测是这是不可能的,但我想我会把问题放在那里。