我知道有 JavaScript 或 jQuery 插件可以设置一些主体类(例如类似 <body class="ff3.5 ff win gecko some-awesome-icons-article-with-100-icons">
的东西)
不知道怎么称呼...?
你知道我的意思吗?有链接/名称吗?
对我来说,设置为 css-body-class 的文章路径比浏览器或操作系统更重要。
最佳答案
我认为您要求的代码将提取 url 路径的“文件名”部分,并将其设置为 body 元素上的类名。
如果是这样,那么基本思想如下:
$(document).ready(function() {
var parts = window.location.pathname.split('/');
var basename = "default-no-basename";
if( parts && parts.length ) {
var idx = parts.length-1;
if( parts[idx] == '' && parts.length > 1 ) {
--idx;
}
basename = parts[idx];
}
//alert("basename: "+basename);
$(body).addClass( basename );
});
该代码只是提取最后一个斜杠后面的页面 URL 部分,并将其写入 body 标记的 class
属性中。如果 url 路径是一个“目录”(即以斜杠结尾),那么它将使用尾随目录名称。如果 url 路径只是“/”,那么它将默认添加类名 'default-no-basename'
。
重要提示:上面的代码没有执行任何操作来确保类名符合 css 类名中允许的字符。因此,如果您的网址类似于:http://example.com/abc/my-cool-page(with stuff).html
,那么您将会遇到问题,因为 css 类将设置为“my-cool-page(with stuff).html”
。
因此,您需要确保永远不会在具有特殊字符(例如 (
, )
, . 的页面上调用此函数。
,以及上例中的 [空格] 字符)。或者您需要向该逻辑添加一些检查以删除不允许的字符。
祝你好运。
关于javascript - jQuery 插件/JavaScript : Set body-class with actual URL,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4064781/