首页 » 建站教程 » Blog教程 » Wordpress » 浏览内容

在WordPress主题上添加风格切换功能 (二)

75 0 发表评论
标签:

上回我介绍了如何在主题中简单实现风格切换功能, 但我的主题风格切换和 wpdesigner7 的究竟有什么不同呢? 主要在获取风格的方法 getPreferredStyleSheet 上.
而这个方法什么时候被调用? 在需要获取风格设定的时候, 主题会先去 Cookie 查找上一次使用的风格, 如果找不到 (一般是第一次运行的时候), 就会调用这个方法.

 

window.onload = function(e) { // 页面加载完成时
	var cookie = readCookie("style"); // 读取 Cookie
	var title = cookie ? cookie : getPreferredStyleSheet(); // 获取上一次的风格
	setActiveStyleSheet(title); // 重新设定风格
}

以下是 wpdesigner7 的方法:

function getPreferredStyleSheet() {
	var i, a;
	for(i=0; (a = document.getElementsByTagName("link")[i]); i++) { 遍历所有 link 标签
		if(a.getAttribute("rel").indexOf("style") != -1 // 找到包含 style 的描述
			&& a.getAttribute("rel").indexOf("alt") == -1 // 找不到包含 alt 的描述
			&& a.getAttribute("title") // 找到 title 属性
		) {
			return a.getAttribute("title");
		}
	}
	return null;
}

以下是我的处理方法:

function getPreferredStyleSheet() {
	var i, a;
	for(i=0; (a = document.getElementsByTagName("link")[i]); i++) {
		if(a.getAttribute("rel").indexOf("style") != -1
			&& a.getAttribute("title")
		) {
			return a.getAttribute("title");
		}
	}
	return null;
}

或许你已经注意到了, 少了句代码而已. a.getAttribute("rel").indexOf("alt") == -1 的意思是 “在标签中无法找到带 alt 的描述属性”.
wpdesigner7 靠这个来判断获取哪个风格 (非默认风格都添加了属性 rel=”alternate stylesheet”), 找到不带该属性的那个风格就立刻返回.
而我的没有用这个属性, 只能将默认的风格放在最前, 找到立刻返回. 也就是说, 每次放最前面的就是它的默认风格.

评论 共0条 (RSS 2.0) 发表评论

  1. 暂无评论,快抢沙发吧。

发表评论

  •   想要显示头像?
回到页首