gpt4 book ai didi

javascript - 这个polyfill 如何为 document.queryselectorall 工作?

转载 作者:行者123 更新时间:2023-11-28 01:01:16 25 4
gpt4 key购买 nike

我正在尝试理解 queryselectorall 的这个polyfill?特别是这一行:

styleTag.styleSheet.cssText = selector + "{x:expression(document.__qsaels.push(this))}";

https://gist.github.com/connrs/2724353

if (!document.querySelectorAll) {
document.querySelectorAll = function(selector) {
var doc = document,
head = doc.documentElement.firstChild,
styleTag = doc.createElement('STYLE');
head.appendChild(styleTag);
doc.__qsaels = [];

styleTag.styleSheet.cssText = selector + "{x:expression(document.__qsaels.push(this))}";
window.scrollBy(0, 0);

return doc.__qsaels;
}
}

最佳答案

它正在滥用 expression "feature" CSS 的。当计算 x 属性的样式时(这发生在 scrollBy(0, 0) 触发的回流上),Internet Explorer 将为所有与选择器。

CSS expressions are officially despised从 IE 8 开始...

关于javascript - 这个polyfill 如何为 document.queryselectorall 工作?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25594395/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com