Javascript 有没有一种方法可以从字符串构建google搜索URL

Javascript 有没有一种方法可以从字符串构建google搜索URL,javascript,google-chrome-extension,Javascript,Google Chrome Extension,我正在尝试为一个新标签做一个chrome扩展,并尝试创建一个搜索栏,到目前为止,我的代码工作正常,但是当我想搜索“1+1”,而不是搜索“1+1”,它认为“+”是一个空格,最后搜索“1 1”,但没有给出任何错误 HTML: <input type="text" id="search-content"/> <img id="search-submit" title="Search Google" src

我正在尝试为一个新标签做一个chrome扩展,并尝试创建一个搜索栏,到目前为止,我的代码工作正常,但是当我想搜索“1+1”,而不是搜索“1+1”,它认为“+”是一个空格,最后搜索“1 1”,但没有给出任何错误

HTML:

<input type="text" id="search-content"/>
<img id="search-submit" title="Search Google" src="search.png"/>
document.getElementById("search-submit").addEventListener("click", function() {
    if(!document.getElementById("search-content").value) return;
    let url = buildURL(document.getElementById("search-content").value);
    window.location.href = url;
});

function buildURL(string){
    string = string.split("");
    let url = "https://www.google.com/search?q=";
    for(let i = 0; i < string.length; i++){
        if(string.i === " ") return url = `${url}%20`
        url = `${url}${string[i]}`
        console.log(url);
    }
    return url
}
{
    "manifest_version": 2,
    "name": "New Tab",
    "description": "A New Tab",
    "version": "1",
    "permissions" : [
            "bookmarks",
        "storage",
        "sessions",
        "tabs"],
    "chrome_url_overrides" : {
        "newtab": "newpage.html"
    },
        "background": {
        "scripts":["background.js"],
    "persistent": false
    }
 }
<input type="text" id="search-content"/>
<img id="search-submit" title="Search Google" src="search.png"/>

document.getElementById("search-submit").addEventListener("click", function() {
    if(!document.getElementById("search-content").value) return;
    let url = buildURL(document.getElementById("search-content").value);
    window.location.href = url;
});

function buildURL(string){
    string = string.split("");
    let url = "https://www.google.com/search?q=";
    for(let i = 0; i < string.length; i++){
        if(string.i === " ") return url = `${url}%20`
        if(string.i === "+") return url = `${url}%2B`
        url = `${url}${string[i]}`
        console.log(url);
    }
    return url
}
{
    "manifest_version": 2,
    "name": "New Tab",
    "description": "A New Tab",
    "version": "1",
    "permissions" : [
            "bookmarks",
        "storage",
        "sessions",
        "tabs"],
    "chrome_url_overrides" : {
        "newtab": "newpage.html"
    },
        "background": {
        "scripts":["background.js"],
    "persistent": false
    }
 }
这是我试图解决的问题,但是
如果(string.i==“+”)
似乎没有被javascript调用,即使它应该被调用。如果有人能提出任何其他可能的方法,我们将不胜感激

HTML:

<input type="text" id="search-content"/>
<img id="search-submit" title="Search Google" src="search.png"/>
document.getElementById("search-submit").addEventListener("click", function() {
    if(!document.getElementById("search-content").value) return;
    let url = buildURL(document.getElementById("search-content").value);
    window.location.href = url;
});

function buildURL(string){
    string = string.split("");
    let url = "https://www.google.com/search?q=";
    for(let i = 0; i < string.length; i++){
        if(string.i === " ") return url = `${url}%20`
        url = `${url}${string[i]}`
        console.log(url);
    }
    return url
}
{
    "manifest_version": 2,
    "name": "New Tab",
    "description": "A New Tab",
    "version": "1",
    "permissions" : [
            "bookmarks",
        "storage",
        "sessions",
        "tabs"],
    "chrome_url_overrides" : {
        "newtab": "newpage.html"
    },
        "background": {
        "scripts":["background.js"],
    "persistent": false
    }
 }
<input type="text" id="search-content"/>
<img id="search-submit" title="Search Google" src="search.png"/>

document.getElementById("search-submit").addEventListener("click", function() {
    if(!document.getElementById("search-content").value) return;
    let url = buildURL(document.getElementById("search-content").value);
    window.location.href = url;
});

function buildURL(string){
    string = string.split("");
    let url = "https://www.google.com/search?q=";
    for(let i = 0; i < string.length; i++){
        if(string.i === " ") return url = `${url}%20`
        if(string.i === "+") return url = `${url}%2B`
        url = `${url}${string[i]}`
        console.log(url);
    }
    return url
}
{
    "manifest_version": 2,
    "name": "New Tab",
    "description": "A New Tab",
    "version": "1",
    "permissions" : [
            "bookmarks",
        "storage",
        "sessions",
        "tabs"],
    "chrome_url_overrides" : {
        "newtab": "newpage.html"
    },
        "background": {
        "scripts":["background.js"],
    "persistent": false
    }
 }

我可以使用
encodeURIComponent()
来转义特殊字符

我可以使用
encodeURIComponent()
来转义特殊字符

使用
encodeURIComponent()
来正确转义URL查询字符串.string中的特殊字符。我正在寻找“I”不是索引
函数buildURL(字符串){return“https:///www.google.com/search?q=“+encodeURIComponent(string);}
@Barmar谢谢,效果很好!使用
encodeURIComponent()
正确转义URL查询字符串.string中的特殊字符。我正在查找“i”,而不是索引
函数buildURL(string){return“https:///www.google.com/search?q=“+encodeURIComponent(string);}
@Barmar谢谢,效果很好!