我的任务是为一个我没有建立并且相当老的网站改变一点css。长话短说 - 从头开始构建网站不是一种选择。有两个与该站点关联的CSS样式表。我试过把它们结合起来没有运气。第一个样式表在文档的head部分中正常声明。第二个似乎是从以下代码中提取的:
<script type="text/javascript">
<!--
function P7_StyleLoader(tS) { //v1.3 by PVII
var tH = '',
tDoc = '',
tA = '<LIN' + 'K REL="stylesheet" HREF=',
tB = ' TYPE="text/css">';
if (document.getElementsByTagName) {
var bb = document.getElementsByTagName("LINK");
if (bb) {
for (var k = 0; k < bb.length; k++) {
if (bb[k].rel.toLowerCase() == "stylesheet") {
var h = bb[k].href,
x = h.lastIndexOf("/");
if (x > 0) {
tH = h.substring(0, x + 1);
}
bb[k].disabled = true;
tDoc = tA + '"' + tH + tS + '"' + tB;
document.write(tDoc);
break;
}
}
}
}
}
P7_StyleLoader('STYLE-SHEET-2.css');
//-->
</script>
如果我合并它们并从html中删除其中一个样式表,那么该网站在布局方面几乎会中断。有人可以告诉我上面的代码除了拉“STYLE-SHEET-2.css”之外还做了什么吗?我的想法是,我想使用上面的代码并将其他样式放入其中,反之亦然?我在这里错过了什么吗?
谢谢!
答案 0 :(得分:3)
代码通过禁用其他样式表来替换当前样式表
似乎是设计用于删除Netscape 4特定样式表的代码,因为NS4不了解禁用的样式表:)
这是2002年关于这个显然更老的代码的讨论 http://www.webxpertz.net/forums/showthread.php?t=20718
答案 1 :(得分:2)
javascript片段禁用所有样式表链接语句,并仅导入style-sheet-2.css。
答案 2 :(得分:1)
实际上,它的作用是为样式表插入一个新的-attribute。您应该使用firebug查看DOM文档,以使用style-sheet-2.css查看确切生成的链接。
我的猜测是它加载了以下行:
<link rel="stylesheet" href="STYLE-SHEET-2.css" type="text/css" />
它也可能(重新读取你的代码..)它正在剥离所有其他CSS并用这个替换src。非常奇怪......
答案 3 :(得分:1)
龙跃。这是一些令人讨厌的javascript。
它正在做的大致是:它扫描文档中的任何<link>
元素并禁用它们。它会加载函数调用中指定的样式表。
此外,它确定原始CSS包含的目录路径是什么,并将其附加到它正在加载的样式表的前面,以便它从原始路径加载的路径加载。
代码也被(略微)混淆,大概是为了防止自动脚本检测到他们正在做什么。
问题是为什么有人会真正解决所有麻烦?
我想不出他们为什么这么做的原因太多了。唯一有意义的是愚弄垃圾邮件机器人加载错误的样式或类似的东西。使页面看起来与机器人看起来与人类如何看待它不同。可能也试图愚弄搜索引擎机器人,但这将被认为是一个非常糟糕的举动 - 如果谷歌抓住了你的黑名单。