我想使用以下代码使用javascript重定向页面:
var s = 'http://blahblah/' + encodeURIComponent(something);
alert(s);
window.location.href = s;
警报显示正确的编码网址但是当我将其传递给window.locaion.href时,它会将网页重定向到未编码的网址,这是错误的。 我怎么能正确地做到这一点? 感谢
答案 0 :(得分:5)
这可能与(a)使用firefox或(b)您正在提供encodedComponent
的特定API(如Google搜索)有关。
这是Firefox-stable上的一个经过测试的解决方案:
var clearComponent = 'flowers for my boyfriend & husband on valentines';
var encodedComponent = encodeURIComponent(clearComponent);
var googleSafeComponent = encodedComponent.replace(/%20/g,'+'); // replaces spaces with plus signs for Google and similar APIs
var completeURI = 'http://google.com/?q=' + googleSafeComponent;
window.location = completeURI;
或全部在一行:
window.location = 'http://google.com/?q=' + encodeURIComponent('flowers for my boyfriend & husband on valentines').replace(/%20/g,'+');
window.location
隐含window.location.href
,因此您可以保存一些字母。 ;)