我正在尝试在主页上添加一个类到body标签。但是,它不起作用。我在做什么呢?
<script>
<!--
var str = navigator.userAgent ;
var version = str.match(/Android\s+([\d\.]+)/)[1];
var version = version.substring(0, 3);
if(version <= 4.0)
location.replace("http://www.yoururladdress.com/yourpage.html");
}
-->
</script>
答案 0 :(得分:3)
window.location.href
永远不会与window.location.hostname
相同,因为前者将包含协议部分(例如:http://),而后者则不包含。
答案 1 :(得分:2)
我不认为
(void)viewDidLoad{}
永远都是真的。 hostname将托管类似stackoverflow.com的东西,其中href将包括协议,端口和其他可能是完整网址的东西。你想检查是否
self.view.backgroundColor = [NSColor blueColor];
或者那种性质的东西。但正如评论中指出的那样,只要添加到该html文件或者如果生成HTML就在服务器上执行此操作似乎要简单得多。
答案 2 :(得分:2)
window.location.href
包含协议信息,永远不会等于window.location.hostname
根据W3
- window.location.href返回当前页面的href(URL)
- window.location.hostname返回Web主机的域名
- window.location.pathname返回当前页面的路径和文件名
您应该检查pathname
主页位置:
var path = window.location.pathname;
if (path == '/' || path == '/home.html') {
$("body").addClass("home");
}
答案 3 :(得分:0)
没有jquery就很容易。
window.addEventListener("load", MyFunction);
function MyFunction(){
if(window.location.origin == window.location.href) {
var body = document.getElementsByTagName('body');
body[0].className = "myclass";
}
}
或
window.addEventListener("load", MyFunction);
function MyFunction(){
if(window.location.origin == window.location.href) {
document.getElementsByTagName('body')[0].className = "myclass";
}
}
body[0]
因为document.getElementsByTagName
返回值是一个数组。
答案 4 :(得分:0)
随着评论的提出,它让我思考。我试过这个并且有效。
<script type="text/javascript">
$(document).ready(function() {
switch (window.location.pathname) {
case '':
case '/index.php':
$('body').addClass('home')
}
});
</script>
我忘了在问题中提到它是在PHP驱动的网站上。我回答了自己的问题,以帮助那些有一天可能会有同样问题的人。