【发布时间】:2012-04-29 22:25:09
【问题描述】:
好的,朋友给了我这段代码,但它不起作用。我一直在寻找一个 java 样式表转换器,这是我唯一能找到的。当我单击链接(更改样式)时,什么也没有发生。帮助?而且我确实很难理解 javascript,所以对我来说很难。
js代码:
function setActiveStyleSheet(title) {
var i, a, main;
for(i=0; (a = document.getElementsByTagName("link")[i]); i++) {
if(a.getAttribute("rel").indexOf("style") != -1 && a.getAttribute("title")) {
a.disabled = true;
if(a.getAttribute("title") == title) a.disabled = false;
}
}
}
function getActiveStyleSheet() {
var i, a;
for(i=0; (a = document.getElementsByTagName("link")[i]); i++) {
if(a.getAttribute("rel").indexOf("style") != -1 && a.getAttribute("title") && !a.disabled) 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("rel").indexOf("alt") == -1
&& a.getAttribute("title")
) return a.getAttribute("title");
}
return null;
}
function createCookie(name,value,days) {
if (days) {
var date = new Date();
date.setTime(date.getTime()+(days*24*60*60*1000));
var expires = "; expires="+date.toGMTString();
}
else expires = "";
document.cookie = name+"="+value+expires+"; path=/";
}
function readCookie(name) {
var nameEQ = name + "=";
var ca = document.cookie.split(';');
for(var i=0;i < ca.length;i++) {
var c = ca[i];
while (c.charAt(0)==' ') c = c.substring(1,c.length);
if (c.indexOf(nameEQ) == 0) return c.substring(nameEQ.length,c.length);
}
return null;
}
window.onload = function(e) {
var cookie = readCookie("style");
var title = cookie ? cookie : getPreferredStyleSheet();
setActiveStyleSheet(title);
}
window.onunload = function(e) {
var title = getActiveStyleSheet();
createCookie("style", title, 365);
}
var cookie = readCookie("style");
var title = cookie ? cookie : getPreferredStyleSheet();
setActiveStyleSheet(title);
}
);
标题样式表代码:
<link rel="stylesheet" type="text/css" media="screen" href="css/zerohour.css" title="default" />
<link rel="alternate stylesheet" type="text/css" media="screen" href="css/rainbow.css" title="rainbow" />
链接激活码:
<a href="#"
onclick="setActiveStyleSheet('default');
return false;">change style to default</a>
<a href="#"
onclick="setActiveStyleSheet('rainbow');
return false;">change style to rainbow</a>
【问题讨论】:
-
尝试打开控制台(在 FF 中为 Ctrl+Shift+J,在 IE 中为 F12,在 Chrome 中不知道)并查看是否/您收到什么错误消息;将您可以在那里找到的内容添加到问题中。
-
@Armatus Ctrl+Shift+I in chrome
-
@Kirean: Ctrl+Shift+J 在 Chrome 和 Chromium 中同样有效
-
@xbonez 显然 F12 也可以。所以,他们只是选择让每个浏览器的命令都成为他们的 :) Love google。
-
“不起作用”是无用的描述。你期望会发生什么?实际发生了什么?您收到任何错误消息吗?当您需要按钮而不是链接时,最好使用按钮而不是链接。
标签: javascript css stylesheet alternate