Firefox中Javascript使用event对象需要注意的问题

    最近,有人向我反映,用Firefox访问博客园,无法使用搜索,输入搜索内容后无法提交。博客园的搜索功能是通过javascript提交的,代码如下:

<script language="JavaScript">
function SearchGoogle(key,evt)
        
{
            
if(event.keyCode==13 || event.keyCode==0)
            
{
                
var keystr = encodeURIComponent(key.value);
                url 
= "http://www.google.com/search?q=";
                url 
= url+keystr;
                url 
+= "&ie=UTF-8&oe=GB2312&hl=zh-CN&domains=www.cnblogs.com&sitesearch=www.cnblogs.com";
                window.location
=url;
                
            }

        }

</script>
<H2>Google站内搜索</H2>
<h4><input style="WIDTH: 130px" type="text" name="q" onkeydown="SearchGoogle(q)">&nbsp;<input onclick="SearchGoogle(q)" type="button" value="搜索" name="sa">
</h4>


这样的代码在IE中可以正常运行,但在Firefox中却出现event is not defined的错误。
因为在Firefox中使用了不同的事件对象模型,不同于IE Dom,用的是W3C Dom。
解决方法请看如下代码:

<script language="JavaScript">
function SearchGoogle(key,evt)
        
{
            
if(evt.keyCode==13 || evt.keyCode==0)
            
{
                
var keystr = encodeURIComponent(key.value);
                url 
= "http://www.google.com/search?q=";
                url 
= url+keystr;
                url 
+= "&ie=UTF-8&oe=GB2312&hl=zh-CN&domains=www.cnblogs.com&sitesearch=www.cnblogs.com";
                window.location
=url;
                
return;
            }

        }

</script>
<H2>Google站内搜索</H2>
<h4><input style="WIDTH: 130px" type="text" name="q" onkeydown="SearchGoogle(q,event)">&nbsp;<input onclick="SearchGoogle(q,event)" type="button" value="搜索" name="sa">
</h4>


posted on 2005-02-17 22:51 dudu 阅读(14882) 评论(9)  编辑 收藏 网摘

评论

#1楼 2005-05-10 09:09 ≈水♂水≈[未注册用户]

下面一个好象也没效果啊~`````   回复  引用    

#2楼[楼主] 2005-05-10 10:19 dudu      

可以啊!你试试, 在Firefox中, 可以正常使用博客园的搜索功能。   回复  引用  查看    

#3楼 2005-07-14 16:32 Chui Xue      

很奇怪的现象,直接用Firefox打开Cnblogs之后点击首页的Google查询是没有问题的,但是这段源码拷贝到本机测试就不行。当加上id="q"的时候才运行正常。还是应该使用id而避免使用name吧   回复  引用  查看    

#4楼 2005-07-31 15:08 Wudi[未注册用户]

event.keyCode   回复  引用    

#5楼 2005-08-18 10:14 dany[未注册用户]

W3C 推荐使用ID
document.getElementBydi()
  回复  引用    

#6楼 2007-01-25 13:54 神州软件园 [未注册用户]

神州软件园 http://www.sooft.org   回复  引用    

#7楼 2007-01-25 13:55 神州软件园 [未注册用户]

写得不错,很有帮助   回复  引用    

#8楼 2007-05-10 14:54 yoyo[未注册用户]

我写了一个函数:
<script>
function m(evt){
document.getElementById("area").innerHTML=evt.clientX +" , "+evt.clientY;

//document.getElementById("area").innerHTML= event.clientX;
}
</script>
<div id="area" style="font-size:36px;width:800px;height:600px;border:1px solid;" onmousemove="m(event);">d</div>

只是不明白原理,为啥非要加个“event”的参数?希望博主给与回复。直接发邮件或者去博客给我留言都可以,我的邮箱地址fesite(at)gmail(dot)com,谢谢
  回复  引用    

#9楼 2007-12-27 12:20 Sylvia.Liu[未注册用户]

谢谢。很有帮助。我在firefox中试验了,的确好使,帮我解决了一个大问题啊。
感觉这方面的参考资料不是很多,楼主能不能推荐一些写的比较详细的参考书啊?
  回复  引用    




发表评论

昵称: [登录] [注册]

主页:

邮箱:(仅博主可见)

评论内容:

  登录  注册

[使用Ctrl+Enter键快速提交评论]

0 105400




历史上的今天:
2004-02-17 学习一下C#中的as与is
2004-02-17 Abstract & Sealed Classes

相关文章:

相关链接:

导航

公告

人生的真正价值在于从何种程度与何种意义上摆脱自我!
明天继续更新评论功能
<2005年7月>
262728293012
3456789
10111213141516
17181920212223
24252627282930
31123456

统计

与我联系

搜索

 

常用链接

留言簿

随笔分类

随笔档案

新闻分类

相册

HJ

朋友的博客

网站收藏

小组

友情链接

最新随笔

最新评论

阅读排行榜

评论排行榜

60天内阅读排行