Joh*_*ero 5 javascript css web-applications
我的javascript包含在X的网站中,但我对她的网站或其中包含的内容没有任何其他控制权.如果她的风格#element,我想不管它,但如果她没有,我有一个我会注入的样式表<head>.有没有办法检测她是否有样式?
检查它的高度为0或1失败,因为它有一些内容并且浏览器做出默认决定.
任何方式javascript/jquery /其他框架来告诉一个样式的CSS特异性将回答这个并且令人难以置信.
了解是否有意设置元素样式的一种简单但不完善的方法是检查元素style的属性是否具有值或者class元素的属性是否已设置。
超文本标记语言
<div id="test_unstyled"></div>
<div id="test_styled" style="background-color: red;" class="something"></div>
Run Code Online (Sandbox Code Playgroud)
JS
var unstyled = document.getElementById('test_unstyled'),
styled = document.getElementById('test_styled');
console.log('test_unstyled is styled?', !!(unstyled.getAttribute('style') || unstyled.className));
console.log('test_styled is styled?', !!(styled.getAttribute('style') || styled.className));
Run Code Online (Sandbox Code Playgroud)
但是,此解决方案不会检测通过 CSS 选择器应用的任何样式。如果您想考虑这些,您可能必须找出浏览器应用的所有默认样式并进行检查,但这将很难维护,我不建议尝试实现此方法,除非您是愿意为此唯一目的开发和维护一个库。
API如果您要发布其他人可能使用的插件,那么实现允许插件的客户端决定是否应用插件样式可能会更容易。
您还可以始终包含样式表,并且用户将能够通过加载自定义样式表来覆盖样式。