2012-01-31 5 views
1

조건에 따라 다른 페이지와 내 페이지를 연결하고 싶습니다.HTML에 조건부 하이퍼 링크를 만드는 방법

내가 즉 1.html 3 HTML 페이지, 2.html 및 3.html있다고 가정합시다. 내가 원하는 건 1.html이로드되면로드 페이지 2.html; 1html이로드되지 않은 경우 3.html을로드하십시오.

도와주세요.

+1

1.html을로드 할 수 있는지, 즉 문서가 전혀 존재하지 않는지 확인 하시겠습니까? 질문을 다시 작성하십시오. – zvona

답변

1

페이지 1, 2 및 3에 대한 설명을 따르지는 못하지만 일반적으로 "onclick"이벤트를 처리하여 일부 조건에 따라 하이퍼 링크를 다른 URL로 이동할 수 있습니다 및 기본 탐색 대신 자바 스크립트에서 그것을 할 : 자바 스크립트가 무효 인 경우 앵커의 href 속성에 지정된

<a href="defaulturlhere" onclick="doClick(); return false;">My link</a> 

<script> 
function doClick() { 
    if (someCondition || someOtherCondition) 
     window.location.href = "firstURLhere"; 
    else 
     window.location.href = "alternativeURLhere"; 
} 
</script> 

의 URL이 사용됩니다. 그렇지 않으면 doClick() 함수가 호출되어 탐색 할 URL을 결정합니다. 물론이 기능은 필요한만큼 간단하거나 복잡 할 수 있습니다.

onclickhref 속성의 URL을 탐색하는 것이 기본값이기 때문에 앵커 클릭에 대한 기본 동작을 취소하려면 return false;이 필요합니다.

+0

'onclick = "return doClick();"으로 더 좋을 수도 있습니다. 그래서 함수가 기본값을 따르는 지 여부를 제어 할 수 있습니다. 당신이 가지고있는 방식대로, 청취자가 실행되면 링크는 따라 오지 않습니다. – RobG

+0

@RobG - 그래, 나도 알아,하지만 나는이 일에 많은 세부 사항을 설명 할 동기가별로 없다는 것을 인정해야한다. (대안을 언급하지 않고 인라인 onclick 속성을 쉽게 이해할 수있는 이유도있다.) . – nnnnnn

0

달성하고자하는 것이 확실하지 않습니다.

다른 페이지가 일찍 열리는 경우에만 페이지에 하이퍼 링크를 표시하고 싶습니다. 이 경우 그 쿠키는 쿠키가 설정되어있는 경우

는, 동적을 만들 2. 페이지의 windolow.onload 이벤트에 설정되어있는 경우

, 당신은 페이지 1의 window.load에 쿠키를 작성하고 확인할 수 있습니다 2 페이지의 하이퍼 링크를 사용하여 3 페이지로 리디렉션합니다. 쿠키가 설정되어 있지 않으면 링크를 만들지 마십시오.

또한 쿠키가 설정되어 있는지 여부를 알려주는 하이퍼 링크를 표시하거나 숨길 수도 있습니다 (동적으로 만드는 대신). jQuery를 사용하지 않는 경우 쉽고 간단한 방법입니다.

은 참조 : 당신이 페이지 하단에 스크립트를 추가하는 경우, 자바 스크립트는 모든 <a> 태그를 검색하고 현재로 비교합니다 : http://www.w3schools.com/js/js_cookies.asp

0

그것의 라인을 따라 뭔가를해야한다 url. 일치하는 경우 스타일을 보이지 않게 설정합니다.

<script> 
linkNodes = document.getElementsByTagName("a"); 

for(i = 0; i < linkNodes.length; i++){ 
    if(linkNodes[i].getAttribute("href") == document.url){ 
    linkNodes[i].style.visibility= "hidden"; 
    } 
} 
</script> 

1.html 인 경우이 방법은 2.html 및 3.html이 표시되지만 1.html 자체는 표시되지 않습니다. 2.html에서도 1.html과 3.html 만 표시됩니다.

+0

코드를 테스트하지 않았습니다 ... 내 컴퓨터에 없었기 때문에 아무 것도 말하지 않아도됩니다 ... – edgarator

관련 문제