Javascript 跨域注入JQuery

Javascript 跨域注入JQuery,javascript,jquery,cross-domain,jsonp,xss,Javascript,Jquery,Cross Domain,Jsonp,Xss,使用JsonP注入JQuery脚本安全吗 我的web应用程序的安装是-向客户的网站(如google analytics)添加脚本。我想在客户的网站上使用JQuery,作为我自己的脚本的一部分 我在想,是否有某种风险? 该应用程序需要支持任何类型的网站 多谢各位 Yaron如果您刚刚访问了库,为什么不链接到托管在上的API?如果您刚刚访问了库,为什么不链接到托管在上的API?您可以通过简单地添加元素将jQuery添加到网站 但是,如果他们使用不同的$keyword,一定要调用它。只需添加一个元素,

使用JsonP注入JQuery脚本安全吗

我的web应用程序的安装是-向客户的网站(如google analytics)添加脚本。我想在客户的网站上使用JQuery,作为我自己的脚本的一部分

我在想,是否有某种风险? 该应用程序需要支持任何类型的网站

多谢各位
Yaron

如果您刚刚访问了库,为什么不链接到托管在上的API?

如果您刚刚访问了库,为什么不链接到托管在上的API?

您可以通过简单地添加元素将jQuery添加到网站


但是,如果他们使用不同的$keyword,一定要调用它。

只需添加一个元素,就可以将jQuery添加到网站中


但是,如果他们使用不同的$keyword,一定要打电话给他们。

很难说你在用你的库做什么,但你似乎正在构建某种类型的小部件,以便在多个站点上使用

@K Prime的一条启发性评论让我研究了如何在需要时包含两个jQuery副本后,从这里开始更新:

如果您正在构建一个小部件,该小部件将位于您无法控制的站点上,并且将使用此嵌入代码的副本添加到站点并粘贴到您的站点类型的功能上,那么使用jQuery通常是不好的。当然jQuery小部件和插件比比皆是,但它们通常是由开发人员选择和安装/实现的,而不是一般的复制粘贴小部件类型的实现

在意识到可以在同一页面上运行两个jQuery副本之后,最大的原因可能是文件大小增加了。是否有担保将取决于您的特殊需求和功能。简单的小部件=纯JS。复杂的网站前端扩展,那么可能值得增加文件大小

要正确地包含它,以便您不会在他们的网站上遇到冲突,请遵循如下工作流:

使用Google API动态地将jQuery添加到他们的页面中,如其他答案所述。 运行var mywidget_jQuery=$.noConflict true;它将恢复$的原始含义,并恢复window.jQuery的原始含义。 动态添加脚本文件,但请确保将整个脚本文件包装在一个自动执行的匿名函数中,如下所示: JS

现在,您可以在您的特殊函数中安全地使用$以及您想要的所有jQuery特性,而不会出现问题


额外注意:您可以将步骤1和2封装在一个if语句中,该语句测试是否定义了window.jQuery,如果定义了window.jQuery,则测试jQuery.fn.version是否足够高以运行代码。如果任一测试失败,则运行步骤1和2。但是,如果通过,则只需运行var mywidget_jQuery=window.jQuery,这样您在步骤3中包含的脚本仍将运行。

很难说您正在使用库做什么,但您似乎正在构建某种类型的小部件,以便在多个站点上使用

@K Prime的一条启发性评论让我研究了如何在需要时包含两个jQuery副本后,从这里开始更新:

如果您正在构建一个小部件,该小部件将位于您无法控制的站点上,并且将使用此嵌入代码的副本添加到站点并粘贴到您的站点类型的功能上,那么使用jQuery通常是不好的。当然jQuery小部件和插件比比皆是,但它们通常是由开发人员选择和安装/实现的,而不是一般的复制粘贴小部件类型的实现

在意识到可以在同一页面上运行两个jQuery副本之后,最大的原因可能是文件大小增加了。是否有担保将取决于您的特殊需求和功能。简单的小部件=纯JS。复杂的网站前端扩展,那么可能值得增加文件大小

要正确地包含它,以便您不会在他们的网站上遇到冲突,请遵循如下工作流:

使用Google API动态地将jQuery添加到他们的页面中,如其他答案所述。 运行var mywidget_jQuery=$.noConflict true;它将恢复$的原始含义,并恢复window.jQuery的原始含义。 动态添加脚本文件,但请确保将整个脚本文件包装在一个自动执行的匿名函数中,如下所示: JS

现在,您可以在您的特殊函数中安全地使用$以及您想要的所有jQuery特性,而不会出现问题


额外注意:您可以将步骤1和2封装在一个if语句中,该语句测试是否定义了window.jQuery,如果定义了window.jQuery,则测试jQuery.fn.version是否足够高以运行代码。如果任一测试失败,则运行步骤1和2。但是,如果通过,那么只需运行var mywidget_jQuery=window.jQuery,这样您在步骤3中包含的脚本仍将运行。

+1,我只知道他们在/1.3/jQuery.js和/1/jQuery.js上有最新副本,我只知道他们在/1.3/jQuery.js+1上有最新副本
/1.3/jquery.js和/1/jquery.js只是一个注释,但是JSON-P是一种与JSON相关的特定技术,而不是普通的JavaScript。您所说的只是包含一个外部JavaScript文件。请注意,JSON-P是一种与JSON相关的特定技术,而不是普通的JavaScript。您所说的只是包含一个外部JavaScript文件,他可以检查jQuery.fn.version,使用jQuery.noConflict true,并在闭包中定义他的函数——这应该确保他的小部件在自己的内部bubble@KPrime,你完全正确。哇,这是一个很大的更新,但我的答案现在实际上是准确的。谢谢你指出这一点!他可以检查jQuery.fn.version,使用jQuery.noConflict true,并在闭包中定义他的函数——这应该确保他的小部件在自己的内部bubble@KPrime,你完全正确。哇,这是一个很大的更新,但我的答案现在实际上是准确的。谢谢你指出这一点!
(function($){
    ... Your code here ...
})(mywidget_jQuery);