當使用Javascript/jQuery將額外的HTML元素添加到網頁並添加額外的外部CSS聲明以與它們一起使用時,您需要防止這些元素的ID和CSS類名與頁面上已有的名稱相沖突。例如您可能已在頁面上的某個位置擁有諸如「outerWrapper」或「nav」之類的ID,並且新內容也可能具有相同的ID。如何在添加到第三方頁面的DOM時避免HTML ID衝突?
在創建要添加到自己的網頁中的代碼時,它相對容易。
但是,如果您想要提供可在任何第三方網站上使用的代碼,則無法控制頁面上已使用的ID和類名稱,甚至不能控制可能對在未來的頁面。
那麼在處理第三方使用的代碼時避免這些衝突的最佳做法是什麼?
到目前爲止,我們只是簡單地使用iframe,但這並不理想。
CSS子選擇器可以防止我們添加的CSS影響現有的元素/類,但它們不會阻止我們的新元素通過已經在頁面上的CSS進行樣式化。
在公司,產品名稱或容器名稱中添加內容的所有ID是唯一的前進方向嗎?例如視頻播放器JWPlayer會將容器名稱作爲其HTML5播放器的所有元素ID的前綴。
我會很感激任何想法。
如果您的內容很有可能與其他內容混合在一起,那麼IMO會在您的類名(特別是您的ID)前加上某種類型的名稱空間(公司,產品等)你無法控制。 – 2013-02-27 18:42:13