我正在为一个有两个域的网站编写Greasemonkey用户脚本。我们说http://friendlyurl.com
和http://ugly.url.com
。 http://friendlyurl.com/*
重定向到http://ugly.url.com/*
。
我想要包含在用户脚本中的一个功能是使用HTML5 replaceState()
将丑陋的URL重写为友好的URL。
我的代码是:
(function() {
if (history.replaceState) {
var url = document.location.href.replace('ugly.url.com/', 'friendlyurl.com/');
history.replaceState({}, document.title, url);
}
})();
直到我意识到这违反了同源政策。我的问题是:是否有一种解决方法来切换网站的域名,可能使用GM_ * API?显然,因为这是一个用户脚本,所以安全问题的规模要小得多。 我目前的猜测是,这是不可能的,但我想我会把问题放在那里。
答案 0 :(得分:2)
history.replaceState
无法用于更改域名。甚至不是通过GM API。
详细了解the HTML Standard for replaceState()中的规则。