2013-04-18 2 views
0

링크를 사용 (클릭)하면 링크 색상을 변경해야합니다. 조치 메소드와 함께 h : commandLink를 사용하고 있습니다. 다음은 코드 스 니펫입니다.a : visited with h : JSF 1.2의 commandLink

.xhtml 파일 -

<h:commandLink styleClass="changeLinkColor" action="#{bean.actionMethod}"> 
     <span><h:outputText value="UserName"/></span> 
     </h:commandLink> 

.css 파일 -

.changeLinkColor 
{ 
color:#0000FF; 
text-decoration:none; 
} 
.changeLinkColor a:link 
{ 
color:blue; 
text-decoration:none; 
} 
.changeLinkColor a:visited 
{ 
    color: black; 
} 
다음

모든 스타일은 제외하고 제대로 작동이 : 방문했다. 그러나 h : commandLink를 h : outputLink로 변경하면 정상적으로 작동합니다. 그러나 나중에 액션 메서드 속성이 없습니다. 따라서 그것을 사용할 수 없습니다.

h : commandLink 태그를 사용하여 링크 색상을 변경하려면 문제가 있으면 공유하십시오.

답변

1

브라우저가 링크 주소 (href)를 방문한 것을 확인한 후 방문한 색상으로 변경합니다.

하지만 CommandLink는이 온 클릭으로 링크를 생성, 그것은 HREF 행동, 예를 비활성화 false를 반환합니다 :

<a onclick="return submitForm(x);" href="#">xx</a> 

그래서이는 JSF의 문제가 아닌 HTML 문제입니다.

우리의 솔루션은 다음과 같습니다

  1. 는, 마법의 경로
  2. 오버라이드 온 클릭 함수에 보이지 않는 iframe이에게
  3. 재정의 href를을 만들 iframe을 먼저 마법 경로로 가자.

사용 JQuery와 예 :

$(document).ready(function() { 
     $("#linkDiv a").each(function(idx, elem)) { 
     elem.href = '/dummy_' + elem.innerHTML + '.xhtml'; 
     var oldfunc = elem.onclick; 
     $(elem).click(function(){ 
      invisibleFrame.location.href = elem.href; 
      return oldfunc(); 
     }); 
     }); 
    }); 
관련 문제