Javascript将编码的url传递给window.location.href

时间:2014-02-21 14:38:51

标签: javascript

我想使用以下代码使用javascript重定向页面:

    var s = 'http://blahblah/' + encodeURIComponent(something);
    alert(s);
    window.location.href = s;

警报显示正确的编码网址但是当我将其传递给window.locaion.href时,它会将网页重定向到未编码的网址,这是错误的。 我怎么能正确地做到这一点? 感谢

1 个答案:

答案 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,因此您可以保存一些字母。 ;)