2013-02-24 3 views
0

내 웹 사이트의 특정 페이지에만 특정 패널을 표시하고 나머지는 숨기는 작업 자바 스크립트 코드가 필요합니다. 그것은 포럼 - esque 설치입니다.특정 페이지에만 표시되는 패널

여기까지가 있습니다.

<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를 배치하는 것입니다.

document.location.href 정말 콘솔 (보통 F12)에 입력하여 페이지가 뭔지

<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

확인합니다. 예를 들어 대부분의 브라우저는 URL에 URL이 하나도없는 경우에도 서버 이름에 슬래시를 추가합니다. 일치 항목은 코드가 작성된대로 작동해야합니다.

또 다른 옵션은 document.location.pathname을 비교하는 것으로, 서버 이름 다음에 모든 항목이 있습니다. 대소 문자를 구분하지 않으려면 document.location.pathname.toLowerCase()을 사용할 수 있습니다.

+0

고맙습니다. 문제는 아닙니다. URL이 잘못 지정되면 패널은 모든 페이지에서 숨길 수 있습니다. 여전히 표시됩니다. –

+0

@TW_ Grant Clement의 대답은 옳은 것처럼 보입니다. 코드가 실행되고 있지 않은지 확인하지 않으면 'alert (1);'과 같은 코드를 입력하여 코드가 실행되고 있는지 확인할 수 있습니다. – Plynx

+0

경고 테스트를 사용하면 매우 유용합니다. –

관련 문제