面板仅显示在特定页面上

时间:2013-02-24 15:58:55

标签: javascript location document if-statement

我需要一个有效的javascript代码,只在我网站上的某个特定页面上显示某个面板,并将其隐藏在其余部分。这是一个论坛风格的设置。

这是我到目前为止所得到的。

<script type="text/javascript">

function ShowPanel()
{
if(document.location.href == "http://www.exampleurl.com")
{document.getElementById("panel").style.display = "block";}
else
{document.getElementById("panel").style.display = "none";}
}

</script>

        <div id="panel" onload="ShowPanel">
            Example text.
        </div>

根据我查找的示例代码,所有这些似乎都是合理的,但显然在某处有错误。没有任何事情发生。

感谢您的检查!

2 个答案:

答案 0 :(得分:1)

问题是onload事件不能在DIV元素上使用。 onload只能在文档正文或外部资源(iframe,图像,脚本)上使用。

最好的办法是将JavaScript放在页面底部。

e.g。

<div id="panel">
    Example text.
</div>

<script language="JavaScript">
if(document.location.href == "http://www.exampleurl.com"){
    document.getElementById("panel").style.display = "block";
}
else {
    document.getElementById("panel").style.display = "none";
}    
</script>

答案 1 :(得分:0)

通过在控制台中键入document.location.href确实在页面上的内容(通常是 F12 )。例如,大多数浏览器会将尾部斜杠添加到服务器名称中,即使URL中没有。匹配必须与您的代码完全一致才能正常工作。

另一个选择是比较document.location.pathname,它将包含服务器名称之后的所有内容。如果您想进行不区分大小写的比较,可以使用document.location.pathname.toLowerCase()