울어라휘파람새야

윈도우 상태표시줄 안 보이게 하기(링크 표시) 본문

밥줄/JavaScript

윈도우 상태표시줄 안 보이게 하기(링크 표시)

꼬꼬리코 2010. 9. 30. 15:07
홈페이지를 돌아다니다 보면 링크가 걸린곳은 좌측 하단에 링크가 어디로 가는지 표시된다.
자바스크립트 함수라면 함수가 표시된다.

이벤트를 진행중인데 해당 함수가 표시되면 안 될 것 같다는 생각이 들어 이걸 막아야겠다는 생각이 들었다.
(소스보기 하면 아무 소용도 없는거지만;; 우클릭 막아도 뚫리는 상황이고...;;)

아래의 함수를 <head><script> 여기 </script></head> 넣어주면 표시되는걸 막을 수 있다. 

function hidestatus(){
window.status=''
return true
}

if (document.layers)
document.captureEvents(Event.MOUSEOVER | Event.MOUSEOUT)

document.onmouseover=hidestatus
document.onmouseout=hidestatus

근데 재밌는건... 마우스를 클릭하고 이면 이게 다시 보인다는 단점이 있다.
아 그럼 onMouseDown 을 추가하면 되겠네? 했는데... 안 되는...궁시렁궁시렁....

관련 내용을 검색을 해봤지만 더 이상 자세한 내용은 찾기 힘들었다.

문제가 됐던 구문을 다시 살펴보면

<div id='wow' style='position:absolute;'><a href='javaScript:test(""wow"");'><img src='../event/test/test.png' width='196' height='198' border='0'></a></div>

이 부분이다.

다시 한 번 상황을 설명하면...

저 이미지 위에 마우스를 오버하면 상태표시줄에 javaScript:test(""wow""); 이게 표시됐던것이... 자바스크립트 함수를 추가해서 안 보이게 됐는데, 마우스를 클릭하고 있으면 javaScript:test(""wow""); 이게 다시 보이는 상황이다.

아... 이거 뭐냐...

혹시나 해서 <a href="..."> 가 아닌 이미지에 이벤트를 먹이면 어떻게 되나 해서 아래처럼 바꿔봤다.

<div id='wow' style='position:absolute; cursor:hand;'><img src='../event/test/test.png' width='196' height='198' border='0' onClick=javaScript:test(""wow""); '></div>
 

** cursor:hand 는 웹표준이 아니다. cursor:pointer 로 사용할 것. (2011. 06. 17. 추가) **

이건 된다!

구체적으로 왜 이건 이렇게 되서 이렇게 된다라고 말할만한 수준이 안 되기 때문에...
'자세한 설명은 생략한다.' (김성모 화백  말씀)

참고로 cursor:hand; 는 이미지에 함수를 건 경우 마우스 오버시 마우스 커서가 변화가 없어 링크가 있는지 없는지
유저가 알 수 없기 때문에 커서를 변경시켜주기위해 넣어줬다.

비슷한 맥락으로 <span></span> 을 통해 <span onclick="..."> 이미지 </span>
이런식으로 처리하는 방법이 있다고 했다. (다른 방법으로 해결해서 테스트는 하지 않았다. )

응용편으로 위의 방법말고 이벤트를 통해 상태표시줄에 다른 메시지를 심는 구문을 아래에 넣어 본다.

onMouseOver="self.status='마우스를 올렸습니다.'"; 
onMouseout="self.status='마우스가 가출했습니다.'"; 

Comments