gpt4 book ai didi

include - 检查javascript lib是否已经存在

转载 作者:行者123 更新时间:2023-11-28 20:52:27 25 4
gpt4 key购买 nike

我可以检查我的javascript ext-lib(例如fancybox插件)是否已经存在于我的页面中(不管它的版本)吗?我使用liferay portlet,它可以在一个页面中放置两个相同的portlet,我现在已经有一些脚本冲突了。 (布局配置面板上的 Liferay AUI 脚本、某些 assetPublisher 中的 slider ...)

最佳答案

如果您正在测试 native javascript 函数(即内置函数或使用 javascript 创建的函数),则:

if (typeof foo == 'function')

无论您使用哪个库,都将始终有效。例如测试 jQuery 是否可用:

if (typeof jQuery == 'function')

我不会信任宿主对象的 jQuery isFunction 方法,如果您不测试宿主对象,typeof 是完全可靠的。

编辑

哦,我应该补充一点,如果你正在测试宿主对象的方法,有很多方面需要考虑。在绝大多数情况下,以下内容就足够了:

if (hostObject && hostObject.method) {
// call hostObject.method
}

值得注意的是,宿主对象不需要遵守 ECMA-262(尽管大多数现代实现在很大程度上都这样做,至少对于 DOM 对象而言)。有许多正在使用的实现具有主机对象,当使用 typeof 进行测试时,它们将返回“未知”或类似的结果,一些旧的甚至会抛出错误。

如果使用 object.prototype.toString.call(hostObject) (jQuery 的 isFunction 函数使用)进行测试,某些宿主对象会抛出错误,所以除非您要实现一个强大的 isHostMethod 函数,上面的方法在绝大多数情况下都可以。

关于include - 检查javascript lib是否已经存在,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12207662/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com