我们有一个制作carrusel图片的应用程序,我们正在使用iframe插入网页。
我们想删除iframe,我们已经准备好只使用一个div了,这样的话就是我们的用户会在他们的页面中插入:
<script src="https://www.example.com/mycustom-carrusel.min.js"></script>
<div id="custom-unique-id" style="width:100%;height:300px;"></div>
mycustom-carrusel.min.js 让我们所有的代码都缩小了gulp。
我们的javascript将调用我们的API并在div中绘制所有必要的内容,问题是我们正在使用一些库,比如jQuery和其他库。
我们希望防止与例如jQuery或任何其他可能与用户网页冲突的库发生冲突。
实现此目的的最佳技术是什么,并防止与我们的代码发生任何可能的冲突?
谢谢!
答案 0 :(得分:1)
从嵌入小部件的页面中隔离样式和脚本正是通常使用iframe
的原因。继续使用iframe
。
在某些将来(曾在所有热门浏览器中实施),您可以使用值all
,unset
的initial
CSS属性,而不是iframe
,或revert
,重置widget元素及其嵌套元素的所有继承样式,然后安全地应用自己的样式。
对于一般的JS库,可能没有通用的方法来防止冲突,但特别是对于jQuery,您可以使用jQuery.noConflict(true)
释放$
和jQuery
变量来实现它其他库(包括不同版本的jQuery本身)可以重用这些变量,但只要你能够包含你的jQuery版本并在页面自己的jQuery版本之前调用jQuery.noConflict(true)
(这不太可能)。或者,根本不用使用库(在大多数情况下目前实际上不需要像jQuery这样的库),而只是使用你自己的vanilla-JS脚本,或者,如果你真的不能使用库,请尝试包装自动执行匿名函数中的库代码(以及您自己使用该库的代码),以防止它定义的变量泄漏到全局命名空间。