无意中发现这样一个现象,
JavaScript可以根据浏览器类别决定是否注册函数。
示例:
1
if(document.all)
2
{
3
function al(){alert('aa');}
4
}
5
al()
![](/Images/OutliningIndicators/None.gif)
2
![](/Images/OutliningIndicators/ExpandedBlockStart.gif)
3
![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
4
![](/Images/OutliningIndicators/ExpandedBlockEnd.gif)
5
![](/Images/OutliningIndicators/None.gif)
在IE和FF下运行时,在IE下将弹出'aa'对话框。而在FF下将不会。
换成如下代码:
1
if(!document.all)
2
{
3
function al(){alert('aa');}
4
}
5
al()
![](/Images/OutliningIndicators/None.gif)
2
![](/Images/OutliningIndicators/ExpandedBlockStart.gif)
3
![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
4
![](/Images/OutliningIndicators/ExpandedBlockEnd.gif)
5
![](/Images/OutliningIndicators/None.gif)
在IE下和FF下都可以alert('aa');
不明白的地方,既然if(document.all)可以实现FF下不弹出,而IE下弹出。
为什么if(!document.all)却不能实现IE下不弹出,FF下弹出的效果呢?
----
有哪位达人愿意帮小弟说明一下原因。。。
----
另外:根据浏览器决定是否注册函数这东东是不是我孤陋寡闻^_^