外部站点中不显眼的模态窗口

时间:2010-06-23 12:35:04

标签: javascript jquery unobtrusive-javascript

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

某些网站允许用户复制并粘贴一些小部件,以便与自己的网站一起使用。例如,获得满足感。是的,我希望大多数人在不同的地方看到的反馈图标。

如果你看一下twitterfeed,左边会有一个反馈图标,一旦点击一个漂亮的模态窗口就会出现。模态窗口内容位于外部源的iframe中。

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

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

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

最好的方法是使用不太受欢迎的模态窗口库吗?

非常感谢。希望有意义!

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

2 个答案:

答案 0 :(得分:1)

只有在需要时才能动态加载jQuery。

首先检查jQuery对象是否存在。如果没有添加脚本标记。

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

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

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

答案 1 :(得分:0)

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

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

如果我理解了这一切,iframe内容是一个单独的页面,因此不存在该页面中的javascript代码会干扰调用页面的javascript的情况,但也许我还没有正确理解该部分?

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

我认为这是jQuery插件的一个很好的用例。这样,页面的用户可以像使用任何jQuery函数一样使用您的函数,因此碰撞的可能性较小