2011-02-11 2 views
0

레거시 앱에 사소한 문제가 있습니다. 그래프를 표시하고 그래프의 한 지점 위로 마우스를 가져 가면 도구 설명과 브라우저 하단의 상태 표시 줄 (IE 전용 응용 프로그램)에 정보가 표시됩니다. 그러나 항상 정보를 표시하는 것은 아닙니다. 때로는 그 지점에서 마우스를 움직여 다시 표시해야합니다. 앱이 작성되었을 때 개발자는 'onmousover'대신 'onmousemove'를 사용하여 정보를 표시했습니다. 왜 그렇게 확실한지 모르겠다. 그래서 나는 그것이 변화를 가져 왔는지를보기 위해 그것을 onmouseover로 바꾸었다. 그리고 정보가 상태 표시 줄에 나타나지 않는다는 것을 제외하면보다 ​​안정적으로 작동하는 것처럼 보였다. 대신 href 정보가 표시됩니다 (그래프의 점을 클릭하여 해당 점의 드릴 다운을 할 수 있음).onmouseover와 정보를 표시하는 onmousemove

<html> 
<script language="JavaScript"> 
    function display(txt) { 
    window.event.srcElement.title = txt; 
    window.status = txt; 
    } 

    function reset() { 
    window.status = window.defaultStatus; 
    } 
</script> 
<body> 
    <a href="#" onclick="alert('do something');" onmouseover="display('Displaying mouseover!');" onmouseout="reset();">This is mouseover text.</a> 
    <br/><br/> 
    <a href="#" onclick="alert('do something else');" onmousemove="display('Displaying mousemove!');" onmouseout="reset();">This is mousemove text.</a> 
</body> 
</html> 

'onMouseover와'이벤트가 실제로 HREF 정보를 보여주는 대신에 상태 표시 줄에 정보를 표시 할 수있는 방법이 있나요 :

여기에 문제를 표시 간단한 샘플 HTML은? 'onmousemove'를 사용하면 상태 표시 줄에 href 정보가 간략하게 표시되고 지정된 텍스트로 변경됩니다. 이것은 두 사건이 작동하는 순서에 관한 문제일까요? 지금까지 내가 말할 수있는 올바른 보이는

데이브

답변

1

당신의 응용 프로그램에서 <a> (앵커) 아니오 (실제) href이없는 경우, 당신은 다른 HTML 요소로 교체 할 수 있습니다. (예를 들어, <span>); 앵커는 기본 스타일링을 제외하고 아무 것도 추가하지 않습니다 (동작 인식에서).

앵커를 다른 요소로 바꿀 때 약간의추가 스타일링이 필요할 수 있습니다. 스타일을 위해 나는 클래스 '링크'를 추가

<span class="link" onclick="alert('do something');" onmouseover="display('Displaying mouseover!');" onmouseout="reset();">This is mouseover text.</span> 

CSS :이 onMouseover와 + <a>의 문제가 해결되지 않습니다 알고 있지만 당신에게 'HREF'그 보증을 제공

span.link 
{ 
    color:blue; 
    text-decoration:underline; 
} 

상태 표시 줄에 절대 표시되지 않으며 JavaScript 함수가 작동합니다.

0

. 한 가지 확인해야 할 점은 최신 브라우저가 상태 메시지를 변경하는 기능을 사용하지 못하게한다는 것입니다. 이것은 여러 가지 이유로 이루어집니다 - 주요한 것은 보안입니다. 링크 위로 마우스를 가져 가면 링크가있는 곳을 볼 수 있습니다. 숨겨진 텍스트가 아니라 다음에 어디로 갈지 알 수 없습니다. 브라우저에서 설정을 변경하여 상태 메시지를 볼 수 있습니다. Internet Explorer에서

:

은 도구> 인터넷 옵션

  1. 인터넷 옵션이 선택되어 있는지 확인합니다 보안 탭을 클릭/강조
  2. 클릭 사용자 지정 수준 (
  3. 스크립트를 통해 상태 표시 줄 업데이트 허용 (스크립팅 옵션 아래)이 나타날 때까지 아래로 스크롤합니다. 다시 물론

, 당신은 항상 다른 길을 갈 수 단지 툴팁이 좌표가 아닌 상태 표시 줄을 표시 할이 화면을

  • 확인을 클릭을 저장하려면 확인
  • 클릭 사용을 클릭합니다. 너 그거 해봤 니? 그것은 단지 기본 HTML입니다 (alt 속성 사용).

  • +0

    그래, 그 옵션은 내 브라우저에서 허용되며 'onmousemove'이벤트는 상태 표시 줄을 변경합니다. 'window.status' 값을 설정하는 행의 바로 전후에 '경고'를 넣으면 'onmouseover'*가 상태를 설정하지만 나중에 href 정보로 변경된다는 것을 알 수 있습니다. 그러나 'onmousemove'는 지정된 정보를 보여줍니다. 툴팁 부분이 잘 작동합니다. – DaveKub

    0

    내 생각에 문제는 기존 앱을 기존 앱으로 유지하려고한다는 것입니다.


    window.status는 : 에 브라우저 하단의 상태 표시 줄의 텍스트를 설정하거나 이전 텍스트를 설정 반환합니다.

    하지만 지금은 그 obslete입니다.

    예를 들어 Firefox에서 작동하게하려면이 작업을 수행해야합니다.설정 화면 :

    는 사용자가 에 대한 허위로 dom.disable_window_status_change 환경 설정을 설정, 스크립트이 (가) 상태 표시 줄의 텍스트를 변경 가능합니다.

    +0

    저는 이것을 알고 있습니다, 그러나 사용자들은 지난 몇 년 동안 그랬던 것처럼 작동하는 것을 보았습니다. – DaveKub

    +1

    @DaveKub - Heh ... 나는 "사용자가 익숙하기 때문에 익숙해 져야합니다."라는 사실을 잘 알고 있습니다. 제가 소프트웨어를 관리 할 때가 정말 고통 스럽습니다. 그러나 기술 변화와 일부 기능이 지원 중단된다는 사실을 사용자에게 알려주려고합니다. 나는 그들의 요구가 무엇인지 알아보고 실제로보고 싶은 것을 찾은 다음 다양한 옵션 (툴팁, 팝업을 표시하기위한 jQuery를 사용)을 보여주기 위해 노력합니다. 지금까지 내 경력에서 아주 잘 돌아갔다. 어쩌면해볼 수 있을까요? 선택 사항입니까? – JasCav

    관련 문제