检测访问者是否在具有客户端脚本的索引页面上

ste*_*ing 1 javascript css jquery

是否可以使用客户端脚本检测访问者是否在索引页或域根目录中?

我认为javascript将是最好的方法,因为我想根据访问者在主页上的位置附加值到图像文件.

非索引页面:

<img src="/img/logo.png" />
Run Code Online (Sandbox Code Playgroud)

索引页面:

<img src="/img/logo-home.png" />
Run Code Online (Sandbox Code Playgroud)

Fre*_*man 7

var homeUrl = 'http://www.example.com';
if ( document.URL == homeUrl ){
    // true
}else{
    // false    
}
Run Code Online (Sandbox Code Playgroud)

现在在HTML中的图像标记上添加一个id:

<img src="/img/logo-home.png" id="logotype" />
Run Code Online (Sandbox Code Playgroud)

现在,您可以使用javascript轻松找到图像标记,并根据您在网站上的位置更改图像的来源.

$(document).ready(function(){

    var homeUrl = 'http://www.example.com';
    var logotypeHome = '/img/logo-home.png';
    var logotypeGeneral = '/img/logo-general.png';

    if ( document.URL == homeUrl ){
        $('#logotype').attr("src", logotypeHome);
    }else{
        $('#logotype').attr("src", logotypeGeneral);   
    }

});
Run Code Online (Sandbox Code Playgroud)

我仍然强烈建议为这样的事情寻求服务器端解决方案.如果客户端未启用JavaScript,则无效.当javascript更改徽标源时,图像上也可能有闪光.

  • @sterling - 我可能错了,但我猜你真正需要的是服务器端脚本语言.使用Javascript在99%的页面上调整这样的东西似乎不是一个好主意. (3认同)

Cha*_*JRA 7

另一种解决方案,没有基本URL.

if ( window.location.pathname === '/' ){
    //code for index page

}else{
    //other tasks    
}
Run Code Online (Sandbox Code Playgroud)

  • 更好的方法,因为它不需要在您的JavaScript中对您的域进行硬编码. (2认同)