none
求教在网页中嵌入如何搜索器 RRS feed

  • 问题

  • 我希望在我的网页中嵌入搜索器。支持google和百度。我写了如下片段:
           <form method="get" id="form2" action="">
            关键字:<input id="Text1" type="text" name="q" />
            <input id="txtinput" type="submit" value=" ..搜索.." onclick="search()"/>
            <input id="Radio1" name="seach" type="radio" />百度&nbsp;&nbsp;&nbsp; 
            <input id="Radio2" name="seach" type="radio" checked="checked" />google
            </form>
            <script type="text/jscript" language="javascript">
            function search()
            {
                var form = document.getElementById('form2');
                var rad1 = document.getElementById('Radio1');
                var rad2 = document.getElementById('Radio2');
                form.actoin = (rad1.checked=="true") ? "http://www.baidu.com/s":"http://www.google.com/search";
                var input = document.getElementById('txtinput');
                input.name = (rad1.checked=="true")? "wd":"q";
            }
            </script>

    因为google的搜索页面是www.google.com/search 文本框的name必须是q 而百度的搜索页面是www.baidu.com/s 文本框的name必须是wd所以我使用js修改属性。
    但是好像var form = document.getElementById('form2');这句话获取不到表单。我通过断点观察到这个form变量获取到的是个4个object对象的数组。所以我
    没办法修改它的action的值。请问这个问题如何解决?
    郭鹏
    2009年5月8日 13:09

答案

  •  document.getElementById('form2');是应该可以得到表单的。
    一个简单的做法是做个两个搜索表单,动态显示个影藏一个就可以了,比如
    <form id="f1" action=http://google>
    <input name=q>
    ..
    </form>

    <form id="f2" action=http://baidu style="display:none">
    <input name=wd>
    ..
    </form>

    <input id="Radio1" name="seach" type="radio" onclick="show(2,1)" />百度&nbsp;&nbsp;&nbsp;
    <input id="Radio2" name="seach" type="radio" onclick="show(1,2)"  checked="checked" />google


    function show(s,h)
    {
     document.getElementById("f"+s).style.display=""
    document.getElementById("f"+h).style.display="hidden"

    }

    【孟子E章】
    • 已标记为答案 Hugo12345 2009年5月11日 14:51
    2009年5月8日 23:12
    版主