知识大全 JS判定是否原生方法

Posted

篇首语:生活若剥去理想、梦想、幻想,那生命便只是一堆空架子。本文由小常识网(cha138.com)小编为大家整理,主要介绍了知识大全 JS判定是否原生方法相关的知识,希望对你有一定的参考价值。

JS判定是否原生方法  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!

这篇文章介绍了js判定是否原生方法 有需要的朋友可以参考一下  

  浏览器的趋势是加入越来越多对象 像Worker 同时也为旧有的对象添加新方法 如何兼容它的第一步就是检测它们是否存在 没有则补上自己的兼容代码 这时问题就来了 有的类库是给你做了这一步 但有时没有 有时是做了 但并不符合标准 因此单纯是typeof Array prototype map === "function"可能不够用 这时isNative方法就要登场了 我一直用的版本 自己写的

复制代码 代码如下: var isNative = function(method)//判定是否为原生方法        return !! method && (/s*[native code]s*/ test(method+"") ||            /s*/* source code not available */s*/ test(method+""));//这里是为了兼容opera x的   

   但世界这么大 肯定也有研究过这问题 下面是Diego Perini的版本 指出safari对原生方法的toString值其实也是个不合群的

复制代码 代码如下: var isNative = function(object method)       return object && method in object &&        typeof object[method] != string &&        // IE & W C browser return "[native code]"        // Safari < = will return "[function]"        (/s*[native code]s*|^[function]$/) test(object[method]);   

   它比我的版本多一个参数 能指定是那个原生对象的方法 但一个参数与两个参数是没关系的 结果只是表明 我们俩离完美还有段距离 即使这两个函数取并集 可能还不是正确的全集 当然这不是[native code]或者 source code not available还是[function]的问题 因为要javascript中 很容易山寨各种方法与对象 如 下面的代码就可以成功骗过检测代码

复制代码 代码如下: window test =     toString: function()       return [function];      ; 

   isNative(window test); // true 最后我从nwmathers中找到这个

复制代码 代码如下: cha138/Article/program/Java/JSP/201311/20194

相关参考

知识大全 js原生appendChild的bug解决心得分享

js原生appendChild的bug解决心得分享  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! 

知识大全 原生JS实现表单checkbook获取已选择的值

原生JS实现表单checkbook获取已选择的值  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!本文

知识大全 通过js判断访客显示器屏幕分辨率并给出提示

这段代码大意是通过比较图片分辨率和桌面分辨率来判定改图是否适合直接用作访客的桌面壁纸   通过js判断访客显示器屏幕分辨率并给出提示先给出代码示例<script><!<

知识大全 js和as的稳定传值问题解决

最近在实现flash的播放音乐的功能这就涉及到js和as交互的问题因为要实现动态改变音乐文件的功能可是如何判定呢?   但是在实现js传值给flash时flash在获取值存在几率性有时可以获

知识大全 一个判定文件是否为文本文件的函数

  在用Delphi编程处理文本文件的时候如果要装载的文件比较大你可能会想在文件装载过程中提供一个装载进度的提示那么你就必须自己编写直接通过文件打开/读取函数来装载文件内容的函数  在自己编写文本文件

知识大全 js判断输入是否为数字

  js判断输入是否为数字  <xmlns="<head><metaequiv="ContentType"content="text/;charset=gb"/><

如何判定自己是否是患了牛皮癣

牛皮癣属于一种常见的慢性皮肤病,其发病率非常高,危害性非常大。日常生活中,牛皮癣的发病给人们的正常生活带来很多不便。因此,我们应加强牛皮癣的预防措施,注意自身状况,一旦确诊,应及时进行治疗。那么,如何

如何判定自己是否是患了牛皮癣

牛皮癣属于一种常见的慢性皮肤病,其发病率非常高,危害性非常大。日常生活中,牛皮癣的发病给人们的正常生活带来很多不便。因此,我们应加强牛皮癣的预防措施,注意自身状况,一旦确诊,应及时进行治疗。那么,如何

知识大全 js判断输入是否为数字的具体实例

这篇文章介绍了js判断输入是否为数字的具体实例有需要的朋友可以参考一下 复制代码代码如下:<xmlns="<head><metaequiv="ContentType"

知识大全 JS判断网页是否在iframe或frame中

JS判断网页是否在iframe或frame中  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  网上