【问题标题】:Include javascript libraries scoped包括范围内的 javascript 库
【发布时间】:2013-09-13 22:25:17
【问题描述】:

我正在创建一个网站小部件。用户可以在他们的网站中包含一个 javascript 文件,我的小部件将出现在他们的网站上。

问题: 我想使用 zepto.js 和主干.js,但是如果包含我的小部件的用户已经在使用主干,并且可能使用 jquery 怎么办?

我希望我的库有范围,因此它们不会干扰用户可能正在运行的任何内容。

我不知道该怎么做,但这是一个澄清我想要什么的建议:

window.myWidgetSuperScope = function Backbone () {
  //include backbone.js here
}

【问题讨论】:

  • 你如何包含backbone.js,使用jquery还是什么?使用 jquery 包含的任何脚本都使用 globalEval() 方法设置在全局范围内。
  • 现在我只是将它包含在我的 html 的头部部分。

标签: javascript jquery backbone.js zepto


【解决方案1】:

Google 和 Facebbok 的 +/like 按钮使用 iframe 解决了这个问题。 但这实际上取决于您的小部件将做什么。 如果它需要交互和修改包含它的页面,那么您必须处理页面上可能存在的内容。就像使用已经包含的主干版本(如果有),或者将您的 zepto 和 bb 包含在不同的命名空间中。

【讨论】:

  • 我的小部件不会与页面交互,它只会从窗口中获取一些变量。
  • 因此,从开发人员的角度来看,iframe 的痛苦较小。包含您的小部件的 js 应该创建 iframe 元素并向其添加您需要的变量(或将它们传递给 url)。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-07-24
  • 2013-10-27
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-10-19
相关资源
最近更新 更多