小编典典

链接元素加载

css

无论如何,有没有要监听<link>元素的onload事件?

F.ex:

var link = document.createElement('link');
link.rel = 'stylesheet';
link.href = 'styles.css';

link.onload = link.onreadystatechange = function(e) {
    console.log(e);
};

这适用于<script>元素,但不适用于<link>。还有另一种方法吗?我只需要知道外部样式表中的样式何时应用于DOM。

更新:

将隐藏物<iframe>添加<link>到头部,然后window.onload在iframe中监听事件是否是一个主意?它应在加载CSS时触发,但可能无法保证它已在顶部窗口中加载…


阅读 262

收藏
2020-05-16

共1个答案

小编典典

这是一种hack,但是如果您可以编辑CSS,则可以添加一种特殊的样式(没有可见的效果),您可以使用本文中的技术来收听:

您需要页面中的元素具有CSS会影响的类或ID。当您的代码检测到样式已更改时,即表示已加载CSS。

就像我说的那样:)

2020-05-16