1

这是一个小程序的代码,您可以在其中输入关键字,选择搜索引擎,然后按“搜索”按钮进行搜索。但谷歌不要让我发帖。我还能做什么?

编辑:雅虎和必应工作正常。

错误

405. That’s an error.

The request method POST is inappropriate for the URL 
/search?q=computer. That’s all we know. 

HTML

<form name="search" action="" method="Post" onSubmit="redirect()">
<input type="text" name="keyword"><br />
Google<input type="radio" name="ch" checked>
Yahoo!<input type="radio" name="ch">
Bing<input type="radio" name="ch"><br />
<input type="submit" value="Search">
</form>

Javascript

<script type="text/javascript">
var searchengine=[
"http://google.com/search?q=",
"http://search.yahoo.com/search?p=",
"http://bing.com/search?q="
];

function redirect()
{
    var radioButtons = document.getElementsByName("ch");
    for (var x = 0; x < radioButtons.length; x++) {
        if (radioButtons[x].checked)
        {
            document.search.action = searchengine[x] + document.search.keyword.value;
        }
    }
}
</script>
4

2 回答 2

4

但谷歌不要让我发帖。我还能做什么?

使用GET而不是POST在您的表单中,或者只是将相关的 URL 分配给window.location.

这是后者的一个例子。其他一些变化:

  • 添加了一些labels。
  • 更改了您匹配所选单选按钮的searchengine方式,使其更加健壮/可维护。
  • 更改了搜索表单的名称。由于这会被倾倒在window对象上,因此我避免使用诸如“搜索”之类的简单词。
  • 正确编码关键字(您必须对 URI 参数进行编码)。

现场复制| 直播源

HTML:

<form name="searchForm" action="" method="GET" onSubmit="return doSearch()">
<input type="text" name="keyword">
  <br>
  <label>Google<input type="radio" name="ch" value="google" checked></label>
  <label>Yahoo!<input type="radio" name="ch" value="yahoo"></label>
  <label>Bing<input type="radio" name="ch" value="bing"></label>
  <br>
  <input type="submit" value="Search">
</form>

JavaScript:

var searchengine = {
  "google": "http://google.com/search?q=",
  "yahoo": "http://search.yahoo.com/search?p=",
  "bing": "http://bing.com/search?q="
};
function doSearch() {
  var frm, index, cb;

  frm = document.searchForm;
  if (frm && frm.ch) {
    if (frm.ch) {
      for (index = 0; index < frm.ch.length; ++index) {
        cb = frm.ch[index];
        if (cb.checked) {
          window.location = searchengine[cb.value] +
            encodeURIComponent(frm.keyword.value);
        }
      }
    }
  }

  return false; // Cancels form submission
}
于 2012-10-03T08:44:15.983 回答
0

"http:google.com/search?q=", 格式不正确..

尝试"http://google.com/search?q="

于 2012-10-03T08:43:42.863 回答