当使用 Javascript/jQuery 向网页添加额外的 HTML 元素并添加额外的外部 CSS 声明以配合它们时,您需要防止这些元素的 ID 和 CSS 类名与页面上已有的冲突。例如,您可能已经在页面某处拥有像“outerWrapper”或“nav”这样的 ID,并且新内容也可能具有相同名称的 ID。
在创建要添加到您自己的网页的代码时,这相对容易。
但是如果你想提供可以在任何 3rd 方网站上使用的代码,你就无法控制页面上已经使用了哪些 ID 和类名,更不用说将来可能对页面进行哪些更改.
那么在处理供第三方使用的代码时,避免这些冲突的最佳做法是什么?
到目前为止,我们一直在简单地使用 iframe,但这并不理想。
CSS 子选择器可以防止我们添加的 CSS 影响现有元素/类,但它们不会阻止我们的新元素被页面上已有的 CSS 设置样式。
为我们添加的内容的所有 ID 加上前缀,比如公司、产品名称或容器名称,是唯一的出路吗?例如,视频播放器 JWPlayer 将容器名称作为其 HTML5 播放器的所有元素 ID 的前缀。
我会很感激任何想法。