如何使用Chrome扩展程序修改用户提交的搜索输入中的查询?

时间:2016-11-04 17:41:25

标签: javascript

所以,我正在为学校作业编写一个Chrome扩展程序,而且我认为我需要解析一个字符串。这是我第一次使用HTML,CSS和JS,所以我只是在网上搜索有关如何实现这一目标的提示。

基本上,在我们的任务中,我们需要为Chrome创建一个扩展程序,它实际上打开了一个新页面,我们有一个搜索栏。这个网站有https://www.manualslib.com/,我们在该搜索栏中输入的字词需要用于直接搜索该网站。

问题在于,此网站的搜索网址与我以前的网站略有不同:当您搜索某些内容时,网站会将搜索字词的第一个字母写入,将其放入斜杠之间,然后在最后添加整个搜索。例如,如果您在那里搜索genetics,则网址将显示为https://www.manualslib.com/g/genetics.html

所以我想我需要以某种方式解析字符串以获得搜索词的第一个字符,对吧?根据w3schools,使用split()方法是个好主意。问题是我不确定这里的语法是如何工作的。正如我所说,这是我第一次在网络开发中掠夺,所以我对人们在这里做事的方式一点也不熟悉。任何帮助表示赞赏。

这是我搜索栏的代码(此代码仅重定向到网页,它不会搜索任何内容):



<div id="tfheader">
  <form id="tfnewsearch" method="get" action="https://www.manualslib.com/">
    <input type="text" class="tftextinput" name="str" ; size="21" maxlength="120">
    <input type="submit" value="search" class="tfbutton">
  </form>
</div>
&#13;
&#13;
&#13;

我必须做出哪些改变?我是否需要创建一个.js文件来编写解析字符串的函数?或者是HTML文件中写入的解析函数?感谢任何帮助,提前谢谢!

2 个答案:

答案 0 :(得分:0)

var query = 'genetics';
var url = 'https://www.manualslib.com/{0}/{1}.html'
  .replace('{0}', query.substring(0, 1))
  .replace('{1}', query);
console.log(url);

答案 1 :(得分:0)

onsubmit event可能会对您有所帮助。

要重定向到其他网站,只需设置window.location,如下所示:

search_form.onsubmit = function() // will be called as soon as the form is submitted
{
    var searchText = typehead.value; // the text entered in the search bar
    var redirectTo = "https://www.manualslib.com/"+searchText[0]+"/"+searchText+".html";
    window.location = redirectTo;
}