2013-04-25 2 views
1

JavaScript 기능을 호출하는 하이퍼 링크가 있습니다. 나는 팝업으로이 링크를 열고, 그리고 난 내가 멀리 다른 페이지로 이동하지 않도록 false를 돌려 내 자바 스크립트에서자바 스크립트 링크에서 방문한 색상을 표시합니다.

<a class="popup" onclick="return launchModalNews('http://google.com',this)" href="http://google.com/">google</a> 

를 다음과 같이 내 링크를 렌더링합니다.

이 때문에 내 링크가 방문한 것으로 표시되지 않습니다.

방문한대로 표시하려면 숨겨진 iframe을 만들고 IE에서 기록을 유지할 수 있도록 링크 클릭에 src을 설정하고 있습니다.

잘 작동하고 IE에서 링크를 표시 할 수 있지만 링크가 방문했는지 여부를 확인하려고 할 때 문제가 발생합니다. 적절한 색상이 표시되지 않습니다.

내가 사용하고 다음과 같은 방법 :

document.defaultView.getComputedStyle(element, null).color 
jQuery(element).css('color'); 

이 나는 ​​그것이 내가 진짜 색, 즉를 얻을 수있는 방법 방문한 링크 색상을 적용했다고 볼 수있는 일반 링크 색상되지에게 페이지에 방문한 일 동안 제공하는 모든 jquery/javascript를 사용하여 색상을 방문하셨습니까?

두 번째로 방문한 링크를 표시하는이 방법은 IE에서는 작동하지만 Chrome에서는 작동하지 않습니다. 크롬에서이를 달성하는 방법에 대한 아이디어가 있습니까?

는이 내가 런타임에 클래스를 추가하는 경우 다른 link.i 그냥 두 번째 예 을 준 것입니다 google.com을하지 않는 모든 먼저 다음 그 시나리오하지만 페이지가 새로 고쳐하면 잘 작동

[답장으로 업데이트] 그러면 방문한 링크를 얻지 못하고 사용자 정의 클래스를 추가 할 수 없습니다. jquery에서 "a : visted"시도했지만 0 항목을 반환합니다. 나는 그것을 최적화 할 수 있도록 색을 확인하고 싶습니다. 방문한 색상이 표시되면 해당 링크가 이미 브라우저 기록에 있고 브라우저가 방문한 링크를 처리하기 때문에 iframe의 src를 설정하지 않습니다.

+2

대신 새 탭에서 'target = "_ blank"속성을 사용하여 열 수 있습니까? 왜 구글에서 팝업을 열려고합니까? –

+1

색상 == a :을 (를) 감지하려고 시도하여 앵커의 방문 상태를 가져올 수 없습니다. 이것은 보안 문제 (방문자의 사이트 기록을 임의로 감지)로 간주되어 최신 브라우저는 기본 색상으로 되돌아갑니다. –

+0

클릭하면 ** a ** 태그에 클래스를 추가하기 만하면됩니다. 원하는대로 해당 클래스의 CSS를 정의하십시오. – qwerty

답변

1

동일한 스타일의 클래스를 추가 할 수 있습니다 링크를 클릭하면 실제 방문한 링크로 표시됩니다.

$('.popup').click(function(e) { 
    e.preventDefault(); 
    launchModalNews('http://google.com',this); 
    $(this).addClass('visited'); 
}); 
관련 문제