我有一个用于默认属性的链接 css 文件,另一个用于在 wiewport 更改时它会更改的消息。在 JS 脚本的最后,我将元素的 offsetWidth 放入全局值 NavW。所以 JS 似乎返回了错误的值,它不仅在 dom 中计算,而且基于第一个默认 css 属性而不是新属性。但是,目标元素正确呈现。请注意,条件中的值 '2' 是因为存在一个不是 css 文件而是图标的 Link 元素。
function switchTheme(newHref)
{
var newIndex;
newIndex = document.getElementsByTagName("link").length;
var newTheme = document.createElement("link");
newTheme.setAttribute("rel", "stylesheet");
newTheme.setAttribute("type", "text/css");
newTheme.setAttribute("href", newHref);
if ( newIndex == 2 )
{
document.getElementsByTagName("head").item(newIndex - 2).appendChild(newTheme);
}
else if ( newIndex > 2 )
{
var themeToReplace = document.getElementsByTagName("link").item(2);
document.getElementsByTagName("head").item(0).replaceChild(newTheme, themeToReplace);
}
NavW = document.getElementById("wrap").offsetWidth;
}