2013-03-18 4 views
-3

클릭 된 링크가 target = "_ blank"를 속성으로 설정 한 경우 window.open을 호출해야합니다. 그렇지 않으면 iframe을 설정하여 페이지를로드합니다. 값이 null의 경우, 나는 확실히 그것을 충돌하지 않습니다를 ATTR을 확인하고 어떻게해야합니까Jquery로 속성 값을 안전하게 확인하는 방법은 무엇입니까?

지금까지이 있습니다

if ($(that).attr("target") == "_blank") { 
     window.open(linkHref, "_blank"); 
} 
else { 
     document.getElementById(someFrame).src = linkHref; 
} 

내가 $(that).attr("target")가없는 경우 있음을 무서워 설정되었거나 비어 있으면 충돌합니다. JQuery와 문서에서

+3

1. 당신이 "겁 먹었다"는이 사건을 왜 시험해 보지 않으시겠습니까? 2. 그렇지 않습니다. –

+0

왜 겁에 질 렸을까요? 과거에 있었나요? – Dom

+0

괜찮 으면 그냥 시도해보십시오 .. 그러나 블록에'window.open'이 필요 없습니다. – VisioN

답변

5

:

액세스 첫 번째 일치하는 요소의 속성. 이 방법을 사용하면 첫 번째로 일치하는 요소에서 속성 값을 쉽게 검색 할 수 있습니다. 요소에 이러한 이름의 속성이 없으면 undefined는 이 반환됩니다. 속성에는 제목, alt, src, href, 너비, 스타일 등이 포함됩니다.

속성이 없으면 불어 나지 않고 대신 정의되지 않은 값을 반환합니다. 따라서 undefined의 잠재력이 반환되고 그에 따라 조정해야합니다.

더 나 빠지면 오류를 피하기 위해 항상 try/catch에서 휘발성 코드를 감쌀 수 있습니다.

+0

그래서 $ (that) .attr ("target") == "_blank"가 충돌 할 것입니다. 내가 빨리 b/c 말할 수 없다. 그리고 나는 크롬의 콘솔에서 그것을 볼 수 없다. – loyalflow

+2

@ user1361315 "crash"라는 단어를 어떻게 정의합니까? '$ (that)'에 "target"속성이 없으면 그 값은'undefined '가됩니다. 'undefined'와''_blank''를 비교하면 그 결과는'false'입니다. 충돌이 없어야합니다. – Ian

+0

@Ian이 정확합니다. 충돌하지 않습니다. 평등 검사에서 거짓으로 평가됩니다. –

관련 문제