使用 JsonP 注入 JQuery 的脚本是否安全?
我的网络应用程序的安装是 - 将脚本添加到客户的网站(如谷歌分析)。我正在考虑在客户的网站上使用 JQuery,作为我自己注入脚本的一部分。
我想知道,是否存在某种风险?该应用程序需要支持任何类型的网站。
谢谢亚龙
使用 JsonP 注入 JQuery 的脚本是否安全?
我的网络应用程序的安装是 - 将脚本添加到客户的网站(如谷歌分析)。我正在考虑在客户的网站上使用 JQuery,作为我自己注入脚本的一部分。
我想知道,是否存在某种风险?该应用程序需要支持任何类型的网站。
谢谢亚龙
很难说你在用你的图书馆做什么,但似乎你正在构建某种类型的小部件以在多个站点上使用。
在@K Prime 的启发性评论让我研究了如何在需要时包含两个 jQuery 副本后,从这里开始更新:
如果您正在构建一个将存在于您无法控制的站点上的小部件,并且将使用“复制此嵌入代码并粘贴到您的站点”类型的功能添加到该站点,那么使用 jQuery通常是不好的。(当然 jQuery 小部件和插件比比皆是,但这些通常由开发人员选择和安装/实现,而不是通用的“复制粘贴”小部件类型实现)
可能最大的原因(在意识到您可以在同一页面上运行两个 jQuery 副本之后)是文件大小的增加。是否有保证将取决于您的特定需求和功能。简单的小部件 = 纯 JS。复杂的网站前端扩展,那么增加文件大小可能是值得的。
要正确包含它(这样您就不会在他们的网站上遇到冲突),请遵循如下所示的工作流程:
var mywidget_jQuery = $.noConflict( true );
which 将恢复 的本义,$
恢复的本义window.jQuery
。JS
(function($){
... Your code here ...
})(mywidget_jQuery);
现在,您可以安全地$
在您的特殊功能中使用您想要的所有 jQuery 功能,而不会出现问题。
额外的功劳您可以将第 1 步和第 2 步包装在一个 if 语句中,该语句测试是否window.jQuery
已定义,如果已定义,则测试是否jQuery.fn.version
足够高以运行您的代码。如果任一测试失败,则运行第 1 步和第 2 步。但是,如果它通过,则只需运行var mywidget_jQuery = window.jQuery
,以便您在第 3 步中包含的脚本仍将运行。
您只需添加一个<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.3/jquery.js" />
元素即可将 jQuery 添加到网站。
但是,请务必致电jQuery.noConflict()
以防他们使用不同的$
关键字。
如果您只是在引用该库之后,为什么不直接链接到托管在Google Code上的 API ?