提问人:Jeff 提问时间:10/22/2022 最后编辑:Jeff 更新时间:10/23/2022 访问量:47
getComputedStyle 按预期返回,但 getComputedStyle.anyProperty 未返回
getComputedStyle returns as expected, but getComputedStyle.anyProperty does not
问:
我正在开发浏览器脚本,只有一个站点不起作用:craigslist.org/anypost。函数 getComputedStyle() 正确地返回具有正确值的元素的对象,但是当我尝试获取属性值时,它返回了一个不正确的值。CSSStyleDeclaration
例如:
var elementBody = document.getElementsByTagName("body"); // object HTMLCollection(1)
var elementBodyAll = document.body.getElementsByTagName("*"); // object HTMLCollection(42)
var elements = [] // array(43)
.concat(Array.from(elementBody))
.concat(Array.from(elementBodyAll));
for (let i = 0; i < elements.length; i++) {
var element = elements[i];
var elementStyle = getComputedStyle(element);
console.dir(elementStyle);
// Result: [CSSStyleDeclaration] object
// Expanding object shows fontFamily: "\"Bitstream Vera Serif\", \"Times New Roman\", serif"
console.dir(elementStyle.fontFamily);
// Result: "sans-serif"
// Expected result: "\"Bitstream Vera Serif\", \"Times New Roman\", serif"
}
有人启发了我。它在所有其他站点上按预期工作。
编辑
为我尝试了一些新的选择器:var elements
var elements = document.getElementsByTagName("span"); // Same result "sans-serif"
var elements = document.getElementById("titletextonly"); // Nonexistant
var elements = document.getElementsByClassName("postingtitletext"); // Same result "sans-serif"
有趣的是不存在的。服务器是否可以在我的浏览器脚本运行后添加元素?
答: 暂无答案
评论
elements
document.getElementsByTagName("body")[0]
顺便说一句,是一回事。document.body
body