2013-02-24 6 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, image, scripts).

Лучше всего разместить свой 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

Спасибо, это действительно может быть проблемой. В настоящее время я ищу подходящее место для размещения и вызова сценария; размещение его на дне не принесло успеха. Я собираюсь связаться с разработчиками службы форума для поддержки на этом. –

+0

Действительно, рассмотрим эту проблему. Форум работает без функций и вызывает строки. Странно, но эй. –

0

Проверьте, что document.location.href действительно находится на странице, введя его в консоль (F12, как правило). Например, большинство браузеров добавят конечную косую черту на имя сервера, даже если в URL-адресе нет ни одного. Матч должен быть точным для того, чтобы ваш код работал так, как написано.

Другим вариантом является сравнение document.location.pathname, которое будет иметь все после имени сервера. Если вы хотите сделать анализ без учета регистра, вы можете использовать document.location.pathname.toLowerCase().

+0

Спасибо, что это, похоже, не проблема. Если URL-адрес был указан неправильно, панель будет просто скрываться на всех страницах, а это не так. Он по-прежнему отображается. –

+0

@TW_ Ответ Гранта Клемента кажется правильным ... вы можете убедиться, что ваш код запущен, добавив что-то вроде 'alert (1);' - если вы не получите этого, ваш код не будет запущен. – Plynx

+0

Использование теста оповещения оказалось очень полезным! –

Смежные вопросы