0

对不起标题.....有点难以说出我真正想问的问题。

一些网站允许用户复制和粘贴一些小部件以用于他们自己的网站。例如,得到满足。是的,我希望你们中的大多数人在各个地方都能看到这些反馈图标。

如果您查看twitterfeed,左侧会有一个反馈图标,单击后会出现一个漂亮的模态窗口。模态窗口内容位于外部源的 iframe 中。

我真的很喜欢这个,但我的问题是:

我可以通过对模态窗口使用一些 jQuery 库然后将模态内容链接到我页面上的站点来做同样的事情,但是我如何阻止这对其他 javascript 文件的站点变得突兀?

例如,假设我正在使用我的 js 代码和相关的 jquery 代码,并且我已将其压缩到一个文件中。用户将我的小部件添加到他们的网站。如果他们使用 jQuery,我如何确保我的代码不会干扰他们的代码?

最好的方法是使用不是很流行的模态窗口库吗?

非常感谢。希望这是有道理的!

编辑:我可以编写自己的模态窗口功能代码,但我更愿意使用已经完成的库。

4

2 回答 2

1

您可以仅在需要时动态加载 jQuery。

首先检查 jQuery 对象的存在。如果没有添加脚本标签。

这有一些挑战,因为在向页面添加脚本标记时没有 onload 事件,这在跨浏览器中始终有效,因此您必须轮询以查看它是否已完全加载,然后才能运行您的代码。

有一篇关于如何做到这一点的文章: http ://www.squidoo.com/load-jQuery-dynamically

如果用户有不同版本的 jquery 库,您可能仍然会遇到问题,尽管您可以通过一些额外的检查来解决这个问题。

于 2010-06-23T12:51:53.467 回答
0

jQuery UI 有非常好的对话框组件,应该适合你的目的。在它们内部,您可以实例化一个 iframe。看:

http://elijahmanor.com/demos/jqueryuidialogiframe/index.html

如果我正确理解这一切,iframe 内容是一个单独的页面,所以该页面中的 javascript 代码不会干扰调用页面的 javascript,但也许我没有正确理解那部分?

编辑:我想我理解你的意思,因为你想打包你将编写的代码,用 iframe 打开模态窗口。因此,您要确保此代码不会干扰用户正在使用的现有 jQuery 代码。

我认为这是 jQuery 插件的一个很好的用例。这样,页面的用户可以像使用任何 jQuery 函数一样使用您的函数,从而减少冲突的可能性

于 2010-06-23T12:50:35.533 回答