Javascript 有没有一种方法可以从字符串构建google搜索URL
我正在尝试为一个新标签做一个chrome扩展,并尝试创建一个搜索栏,到目前为止,我的代码工作正常,但是当我想搜索“1+1”,而不是搜索“1+1”,它认为“+”是一个空格,最后搜索“1 1”,但没有给出任何错误 HTML: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
<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谢谢,效果很好!