javascript - 페이지 - 팝업 타이틀 바꾸기




링크의 방문 상태 재설정 중 (7)

링크에서 방문 상태를 재설정 할 수있는 방법이 있습니까?

시나리오는 다음과 같습니다. 자연스럽게 많은 링크가있는 인트라넷 사이트에서는 설정된 기간 동안 만 "방문"상태의 링크를 원합니다. 따라서 링크의 방문 상태를 조작하는 방법을 찾고 있습니다.

이게 가능합니까? 물론 크로스 브라우저 여야합니다.

고객 측 솔루션은 완벽하게 수용 가능합니다. 선호도 : ..-)

ETA-2 : 쿠키 허용. 여기에서 금지 된 내용이 없습니다.


"변화하는 URL"을 가진 간단한 서버 측 해결책 인 경우에 :

24 시간 후에 " http : // url1? expire2008_10_21 "이되는 " http : // url1? expire2008_10_20 "

OK가 아닙니다. 다음을 사용할 수 있습니다.

마지막으로 방문한 시간에 브라우저에 쿠키를 저장하게하십시오. 링크가 많고 최대 쿠키 길이가 충분하지 않으면

  1. 세션 쿠키를 저장하고 방문한 데이터를 서버에 보관
  2. 쿠키의 플래시 아날로그 사용 - 로컬 공유 객체

또한 마지막 방문 시간이 만료 된 경우 클라이언트 URL을 무작위로 지정하는 코드를 배치하십시오.


나는 그 아이디어에서 냄새 나는 것을 느낍니다.

링크 방문 상태를 재설정하는 목적은 무엇입니까? 새로운 데이터가 있음을 알려주 는가? 그러면 "NEW"이미지와 같이 좀 더 자세한 정보가 더 적절할 수 있습니까?

당신이 정말로 이것을 해야하는 경우 다른 한편으로는 - URL을 변경하십시오


따라서 특정 시간 동안 "방문한"링크가 다르게 보이게하고 싶습니까? 이것은 browser :visited pseudoclass를 무시하고 커스텀 클래스 이름을 할당하는 것만으로도 쉽습니다. 쿠키 사용; 그들은 만료가 내장되어 있습니다.

링크를 클릭 할 때 JavaScript 처리기를 설정하십시오. 의사 코드 :

function clickHandler(event) {
  var href = /* (figure out which anchor was clicked and get the href) */
  // (you might need to escape the href)

  setCookie(href, "visited", 5); // set cookie for 5 days
}

이 기능은 링크를 따라 가기 전에 실행됩니다.

그런 다음 페이지로드시 다음과 같이 할 수 있습니다.

function markVisitedLinks() {
  var anchors = document.getElementsByTagName("a");

  for (var i = 0; i < anchors.length; i++) {
    if (readCookie(anchors[i].href) == "visited") {
      anchors[i].className += " visited";
    }
  }
}

QuirksMode에서 setCookie 및 readCookie 함수를 가져옵니다.


링크가 작동하는 방식을 변경하면 일반적으로 사용자를 혼란스럽게하거나 화나게 할 수 있습니다. 사이트의 유용성 을 낮추는 확실한 방법입니다.

당신은 정말로 무엇을 성취하려고합니까?

귀하의 사이트에서 서브 페이지가 변경되면 (새 컨텐츠를 가리킴) 사용자 가이를 파악할 수 있습니다. 페이지 구조의 2 ~ 3 단계에서 반짝이는 새 기사를 얻은 경우 주요 페이지에 링크가있는 새로운 섹션을 추가하십시오. (또는 이메일에 링크가있는 통지를 보내거나 ...)


사용자 세션에 대한 타임 스탬프로 방문한 URL 목록을 유지 관리합니다.

링크 페이지가로드 될 때

  • 부실 URL을 플러시
  • 스타일 링크는 목록에 visted로 포함되어 있습니다.

쿼리 문자열의 매개 변수를 수락하고 해당 값의 적절한 유효 기간을 가진 쿠키를 설정하도록 대상 페이지를 변경하십시오.

추천 페이지에서 Javascript를 두어 쿠키의 존재 여부를 확인하십시오.

존재하지 않으면 Javascript에 URL에 큰 임의의 숫자가있는 매개 변수를 추가하게하십시오 (브라우저의 기록에서이를 인식하지 못합니다).

그것이 존재한다면, 자바 스크립트가 쿠키와 같은 값을 가진 매개 변수를 추가하게하십시오 (브라우저의 히스토리가 그것을 인식 할 수 있도록).

노트:

  • 링크 대상이 추천 페이지와 동일한 도메인에 있다고 가정합니다. 그렇지 않은 경우 같은 도메인에서 리디렉션 페이지를 사용하십시오.

  • 브라우저의 기록이 쿠키의 수명과 같은 경우에만 작동합니다. 브라우저 기록이 짧거나없는 경우 클라이언트는 방문한 것으로 표시하지 않습니다.

  • 제발 하지마! 사용자는 "방문한"의미를 잘 이해하고 있습니다. 그것을 깨지 말라 - 당신은 단지 그들을 혼란시킬 것이다.

  • Javascript를 실행하지 않는 사람들을 위해 서버 측 솔루션을 고려해야합니까?

  • 나는이 디자인을 테스트하지 않았다.


클릭 한 적이없는 것처럼 보이도록 링크의 :visited CSS 속성을 포맷하는 것만으로 충분합니까?

나는 잠시 동안 방문한 링크를 추적하고 싶거나 그 (것)들을 항상 똑같이 표시하고 싶은지 모른다; 후자의 경우 간단한 CSS (아래)가 도움이됩니다.

a, a:visited {
     color: blue;
     text-decoration: underline
}

a:hover, a:active {
     color: orange;
}





client-side