2013-02-24 54 views
0

我需要一个工作的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> 

根据我抬头看的示例代码,所有这些似乎都是合理的,但显然在某处存在错误。什么都没发生。

感谢您的检查!

回答

1

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

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

例如

<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> 
+0

谢谢,这可能实际上是问题。我目前正在寻找放置和调用脚本的正确位置;将它置于底部并不成功。 我将联系论坛服务开发人员寻求支持。 – 2013-02-24 16:38:15

+0

的确,考虑解决这个问题。该论坛运行时没有功能和调用线路。这很奇怪,但嘿。 – 2013-02-24 17:00:40

0

检查什么document.location.href真的是在页面上键入到您的控制台(F12,通常情况下)。例如,即使网址中没有一个浏览器,大多数浏览器都会将尾部斜杠添加到服务器名称上。这场比赛必须准确无误地让你的代码按照书面的方式工作。

另一种选择是比较document.location.pathname,它将包含服务器名称后的所有内容。如果你想做一个大小写不敏感的比较,你可以使用document.location.pathname.toLowerCase()

+0

谢谢,但这似乎并不是问题。如果URL被指定为错误,则面板将隐藏在所有页面上,而不是。它仍然显示。 – 2013-02-24 16:32:24

+0

@TW_ Grant Clement的答案似乎是正确的......你可以通过加入类似'alert(1)'的东西来确保你的代码运行正常 - 如果你没有得到这个代码,你的代码不会被运行。 – Plynx 2013-02-24 16:34:16

+0

使用警报测试已被证明非常有用! – 2013-02-24 16:59:37

相关问题