代码在代码测试器中工作,但不在地址栏中

时间:2014-06-29 18:07:22

标签: javascript bookmarklet

如果我在这里输入我的代码:
http://writecodeonline.com/javascript/
它按预期工作,但如果我在我的地址栏中输入“javascript:”,则警告框会显示原始字符串。
出了什么问题?

var string = "Sunshine & Whiskey";
var stringFeedback;
var i = 0;

string = string.replace("&","%26");

do {
    stringFeedback = string.search(/[ ]/);
    string = string.replace(/[ ]/,"%20");
    i += 1;
} while (i < 5);

alert(string);

编辑: 如果我在我的Chromium控制台中输入它可以正常工作,但如果我使用相同的代码制作书签则不然。 关于如何解决这个问题的任何建议?

2 个答案:

答案 0 :(得分:1)

尝试在循环之前初始化i

var i = 0;
do {
    stringFeedback = string.search(/[ ]/);
    string = string.replace(/[ ]/,"%20");
    i += 1;
} while (i < 5);

无论如何,我建议您使用浏览器控制台来测试这些代码段。

答案 1 :(得分:1)

您可以使用

encodeURIComponent("Sunshine & Whiskey");

返回

Sunshine%20%26%20Whiskey

没有任何循环,它是所有浏览器都支持的javascript本机方法。

MDN documentation