调用百度谷歌搜索遇到的问题 本帖最后由 sti01 于 2009-09-13 09:44:41 编辑 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 参数严格按照百度参数提交对于隐藏的input应该不要放在form中然后escape你得参数,否则中文无法在url中传递。 百度的代码中就放置了隐藏的input,而且我需要调用谷歌,因此不能完全按照百度的方式做。百度URL里面的参数都不知什么意思,不想随便加,况且搜索结果在原窗口是可以显示的,只是新窗口无法调用,搞不懂下面是百度提供的调用源码,测试没有问题<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3c.org/TR/1999/REC-html401-19991224/loose.dtd"><html><head><title>百度搜索调用</title></head><body><SCRIPT language=javascript>function gowhere1(formname){ var url; if (formname.myselectvalue.value == "0") { url = "http://www.baidu.com/baidu"; document.search_form1.tn.value = "baidu"; formname.method = "get"; } if (formname.myselectvalue.value == "1") { url = "http://mp3.baidu.com/m"; document.search_form1.tn.value = "baidump3"; document.search_form1.ct.value = "134217728"; document.search_form1.lm.value = "-1"; } if (formname.myselectvalue.value == "4") { document.search_form1.tn.value = "news"; document.search_form1.cl.value = "2"; document.search_form1.rn.value = "20"; url = "http://news.baidu.com/ns"; } if (formname.myselectvalue.value == "5") { document.search_form1.tn.value = "baiduiamge"; document.search_form1.ct.value = "201326592"; document.search_form1.cl.value = "2"; document.search_form1.lm.value = "-1"; url = "http://image.baidu.com/i";}if (formname.myselectvalue.value == "6") { url = "http://post.baidu.com/f"; document.search_form1.tn.value = "baiduPostSearch"; document.search_form1.ct.value = "352321536"; document.search_form1.rn.value = "10"; document.search_form1.lm.value = "65536"; } formname.action = url; return true;}</SCRIPT><form name="search_form1" target="_blank" onsubmit="return gowhere1(this)"><table width="460" height="60" border="0" bgcolor="#FFFFFF" cellpadding="0" cellspacing="0" style=font-family:宋体><tr><td><TABLE width="460" height="80" border=0 cellPadding=0 cellSpacing=0> <INPUT name=myselectvalue type=hidden value=0> <INPUT name=tn type=hidden> <INPUT name=ct type=hidden> <INPUT name=lm type=hidden> <INPUT name=cl type=hidden> <INPUT name=rn type=hidden> <TR> <TD vAlign=bottom width="92%"><INPUT name=myselect onclick=javascript:this.form.myselectvalue.value=4; type=radio value=0> <FONT color=#0000cc style="FONT-SIZE: 12px">新闻</FONT> <INPUT CHECKED name=myselect onclick=javascript:this.form.myselectvalue.value=0; type=radio value=0> <SPAN class=f12><FONT color=#0000cc style="FONT-SIZE: 12px">网页</FONT></SPAN> <INPUT name=myselect onclick=javascript:this.form.myselectvalue.value=1; type=radio value=1> <SPAN class=f12><FONT color=#0000cc style="FONT-SIZE: 12px">mp3</FONT></SPAN><INPUT name=myselect onclick=javascript:this.form.myselectvalue.value=6; type=radio value=0><FONT color=#0000cc style="FONT-SIZE: 12px">贴吧</FONT><INPUT name=myselect onclick=javascript:this.form.myselectvalue.value=5; type=radio value=0> <FONT color=#0000cc style="FONT-SIZE: 12px">图片</FONT> <TABLE align=right border=0 cellPadding=0 cellSpacing=0 width="100%"> <TBODY> <TR> <TD><FONT style="FONT-SIZE: 12px"> <input id=word name=word size="40"> </FONT> <input type="submit" value="百度搜索"> </TD></TR> </form></body></html> 搜索用的是get提交,所以你的参数起不了作用<INPUT name="input"改为<INPUT name="word"并把其它参数赋上相应的值或<form method="post" location.href=result; formname.action = result;把这两句话位置调换一下(建议直接删除此句: location.href=result;) 谢谢各位兄弟的参与,开阔了思路,按各位说法,改进了代码,现在百度搜索可以实现了,奇怪的是没有一条method语句,竟然也可以执行现在又遇到新的问题:百度和谷歌的关键词变量名不同,一个是word,一个是q,但我想在一个搜索框中解决问题,但一个搜索框怎么能取两个变量名呢,谁有办法?修改过的代码如下:<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3c.org/TR/1999/REC-html401-19991224/loose.dtd"><html><head><title>搜索调用测试</title><script>function search(formname){ var result; for(var i=0;i<SearchForm.Site.length;i++) { for(var j=0;j<SearchForm.myselect.length;j++) { if(SearchForm.Site[i].checked & SearchForm.myselect[j].checked) { if(i==0 & j==0) { result = "http://www.baidu.com/baidu"; document.SearchForm.tn.value = "baidu"; } if(i==0 & j==1) { document.SearchForm.tn.value = "news"; document.SearchForm.cl.value = "2"; document.SearchForm.rn.value = "20"; result = "http://news.baidu.com/ns"; } if(i==0 & j==2) { result = "http://video.baidu.com/v"; } if(i==0 & j==3) { document.SearchForm.tn.value = "baiduiamge"; document.SearchForm.ct.value = "201326592"; document.SearchForm.cl.value = "2"; document.SearchForm.lm.value = "-1"; result = "http://image.baidu.com/i"; } if(i==0 & j==4) { result = "http://mp3.baidu.com/m"; document.SearchForm.tn.value = "baidump3"; document.SearchForm.ct.value = "134217728"; document.SearchForm.lm.value = "-1"; } if(i==1 & j==0) { result = "http://www.google.cn/search?q="; } if(i==1 & j==1) { result = "http://news.google.cn/news/search?hl=zh-CN&q="; } if(i==1 & j==2) { result = "http://video.google.cn/videosearch?q="; } if(i==1 & j==3) { result = "http://images.google.cn/images?q="; } if(i==1 & j==4) { result = "http://www.google.cn/music/search?hl=zh-CN&ie=UTF-8&q="; } } } } formname.action = result; return true;}</script></head><body> <form name="SearchForm" onsubmit="return search(this)" target="_blank"> <div id=input-left></div> <div> <INPUT name=word class="inputtext" size="40" maxlength="100"><INPUT class="button" type="submit" value="搜 索"> </div> <INPUT name=myselectvalue type=hidden value=0> <INPUT name=tn type=hidden> <INPUT name=ct type=hidden> <INPUT name=lm type=hidden> <INPUT name=cl type=hidden> <INPUT name=rn type=hidden> <div id=radio-left> <INPUT type=radio CHECKED value=0 name=Site lisNum="0">百度 <INPUT type=radio value=0 name=Site lisNum="1">谷歌 </div> <div id=radio-right> <LABEL><INPUT CHECKED name=myselect onclick=javascript:this.form.myselectvalue.value=0; type=radio value=0>网页</LABEL> <LABEL><INPUT name=myselect onclick=javascript:this.form.myselectvalue.value=1; type=radio value=0>新闻</LABEL> <LABEL><INPUT name=myselect onclick=javascript:this.form.myselectvalue.value=2; type=radio value=0>视频</LABEL> <LABEL><INPUT name=myselect onclick=javascript:this.form.myselectvalue.value=3; type=radio value=0>图片</LABEL> <LABEL><INPUT name=myselect onclick=javascript:this.form.myselectvalue.value=4; type=radio value=0>音乐</LABEL> </div> </form></body></html> <INPUT name=word class="inputtext" size="40" maxlength="100"><INPUT type="hidden" name=q class="inputtext" size="40" maxlength="100">在submit之前把word的值赋给q js是否可以支持 方向键? js中调用其它方法什么时候加括号 请问关于arr.sort(compare)方法 asp里如何用两个select实现级联效果 innerHTML问题 js问题 javscript 大量数据导出excel 拖动滚动条时候,图片也随着移动 ,如何实现?? 还是那个input框的问题,那位哥哥帮帮忙吧!好急噢! 如果没有图片文件时,想用一个缺省的文件代之,有什么办法? 这样的情况一般是什么方面的错误?什么原因产生的?急!急!急! 关于mztree(梅子树)的问题
对于隐藏的input应该不要放在form中然后escape你得参数,否则中文无法在url中传递。
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3c.org/TR/1999/REC-html401-19991224/loose.dtd">
<html>
<head>
<title>百度搜索调用</title>
</head><body><SCRIPT language=javascript>
function gowhere1(formname)
{
var url;
if (formname.myselectvalue.value == "0")
{
url = "http://www.baidu.com/baidu";
document.search_form1.tn.value = "baidu";
formname.method = "get";
}
if (formname.myselectvalue.value == "1")
{
url = "http://mp3.baidu.com/m";
document.search_form1.tn.value = "baidump3";
document.search_form1.ct.value = "134217728";
document.search_form1.lm.value = "-1";
} if (formname.myselectvalue.value == "4")
{
document.search_form1.tn.value = "news";
document.search_form1.cl.value = "2";
document.search_form1.rn.value = "20";
url = "http://news.baidu.com/ns";
}
if (formname.myselectvalue.value == "5")
{
document.search_form1.tn.value = "baiduiamge";
document.search_form1.ct.value = "201326592";
document.search_form1.cl.value = "2";
document.search_form1.lm.value = "-1";
url = "http://image.baidu.com/i";
}
if (formname.myselectvalue.value == "6")
{
url = "http://post.baidu.com/f";
document.search_form1.tn.value = "baiduPostSearch";
document.search_form1.ct.value = "352321536";
document.search_form1.rn.value = "10";
document.search_form1.lm.value = "65536";
} formname.action = url;
return true;
}
</SCRIPT>
<form name="search_form1" target="_blank" onsubmit="return gowhere1(this)">
<table width="460" height="60" border="0" bgcolor="#FFFFFF" cellpadding="0" cellspacing="0" style=font-family:宋体><tr><td>
<TABLE width="460" height="80" border=0 cellPadding=0 cellSpacing=0>
<INPUT name=myselectvalue type=hidden value=0>
<INPUT name=tn type=hidden>
<INPUT name=ct type=hidden>
<INPUT name=lm type=hidden>
<INPUT name=cl type=hidden>
<INPUT name=rn type=hidden>
<TR>
<TD vAlign=bottom width="92%">
<INPUT name=myselect onclick=javascript:this.form.myselectvalue.value=4; type=radio value=0>
<FONT color=#0000cc style="FONT-SIZE: 12px">新闻</FONT> <INPUT CHECKED name=myselect onclick=javascript:this.form.myselectvalue.value=0; type=radio value=0>
<SPAN class=f12><FONT color=#0000cc style="FONT-SIZE: 12px">网页</FONT></SPAN>
<INPUT name=myselect onclick=javascript:this.form.myselectvalue.value=1; type=radio value=1>
<SPAN class=f12><FONT color=#0000cc style="FONT-SIZE: 12px">mp3</FONT></SPAN>
<INPUT name=myselect onclick=javascript:this.form.myselectvalue.value=6; type=radio value=0>
<FONT color=#0000cc style="FONT-SIZE: 12px">贴吧</FONT>
<INPUT name=myselect onclick=javascript:this.form.myselectvalue.value=5; type=radio value=0>
<FONT color=#0000cc style="FONT-SIZE: 12px">图片</FONT> <TABLE align=right border=0 cellPadding=0 cellSpacing=0 width="100%">
<TBODY>
<TR>
<TD><FONT style="FONT-SIZE: 12px">
<input id=word name=word size="40">
</FONT> <input type="submit" value="百度搜索"> </TD></TR> </form>
</body>
</html>
<INPUT name="input"改为<INPUT name="word"并把其它参数赋上相应的值
或<form method="post"
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3c.org/TR/1999/REC-html401-19991224/loose.dtd">
<html>
<head>
<title>搜索调用测试</title>
<script>function search(formname)
{
var result;
for(var i=0;i<SearchForm.Site.length;i++)
{
for(var j=0;j<SearchForm.myselect.length;j++)
{
if(SearchForm.Site[i].checked & SearchForm.myselect[j].checked)
{
if(i==0 & j==0)
{
result = "http://www.baidu.com/baidu";
document.SearchForm.tn.value = "baidu";
}
if(i==0 & j==1)
{
document.SearchForm.tn.value = "news";
document.SearchForm.cl.value = "2";
document.SearchForm.rn.value = "20";
result = "http://news.baidu.com/ns";
}
if(i==0 & j==2)
{
result = "http://video.baidu.com/v";
}
if(i==0 & j==3)
{
document.SearchForm.tn.value = "baiduiamge";
document.SearchForm.ct.value = "201326592";
document.SearchForm.cl.value = "2";
document.SearchForm.lm.value = "-1";
result = "http://image.baidu.com/i";
}
if(i==0 & j==4)
{
result = "http://mp3.baidu.com/m";
document.SearchForm.tn.value = "baidump3";
document.SearchForm.ct.value = "134217728";
document.SearchForm.lm.value = "-1";
}
if(i==1 & j==0)
{
result = "http://www.google.cn/search?q=";
}
if(i==1 & j==1)
{
result = "http://news.google.cn/news/search?hl=zh-CN&q=";
}
if(i==1 & j==2)
{
result = "http://video.google.cn/videosearch?q=";
}
if(i==1 & j==3)
{
result = "http://images.google.cn/images?q=";
}
if(i==1 & j==4)
{
result = "http://www.google.cn/music/search?hl=zh-CN&ie=UTF-8&q=";
}
}
}
}
formname.action = result;
return true;
}</script>
</head>
<body>
<form name="SearchForm" onsubmit="return search(this)" target="_blank">
<div id=input-left></div>
<div>
<INPUT name=word class="inputtext" size="40" maxlength="100"><INPUT class="button" type="submit" value="搜 索">
</div>
<INPUT name=myselectvalue type=hidden value=0>
<INPUT name=tn type=hidden>
<INPUT name=ct type=hidden>
<INPUT name=lm type=hidden>
<INPUT name=cl type=hidden>
<INPUT name=rn type=hidden> <div id=radio-left>
<INPUT type=radio CHECKED value=0 name=Site lisNum="0">百度
<INPUT type=radio value=0 name=Site lisNum="1">谷歌
</div>
<div id=radio-right>
<LABEL><INPUT CHECKED name=myselect onclick=javascript:this.form.myselectvalue.value=0; type=radio value=0>网页</LABEL>
<LABEL><INPUT name=myselect onclick=javascript:this.form.myselectvalue.value=1; type=radio value=0>新闻</LABEL>
<LABEL><INPUT name=myselect onclick=javascript:this.form.myselectvalue.value=2; type=radio value=0>视频</LABEL>
<LABEL><INPUT name=myselect onclick=javascript:this.form.myselectvalue.value=3; type=radio value=0>图片</LABEL>
<LABEL><INPUT name=myselect onclick=javascript:this.form.myselectvalue.value=4; type=radio value=0>音乐</LABEL>
</div>
</form>
</body>
</html>
<INPUT type="hidden" name=q class="inputtext" size="40" maxlength="100">
在submit之前把word的值赋给q