2014-02-19 2 views
1

var 값을 사용하여 window.open URL로 전달하는 방법은 무엇입니까? 나는이 사실을 잘 모른다. 그래서 더 간단할수록 좋다. 고마워요!Javascript : var 값을 onclick window.open URL로 사용하십시오.

<script> 
    if (condition) { 
     var URL = "http://www.url.com"; 
    } else { 
     var URL = "http://www.url2.com" 
    } 
</script> 
<div id="Banner" data-responsive="225h" onclick="window.open('URL','new_window');"> 

답변

3

주의 window.openURL 변수 주위에 따옴표가 없습니다. 더 간결하게하기 위해 나는 var URL 부분을 if/else 로직 밖으로 옮겼습니다.

<script> 
    var URL; 
    if (condition) { 
     URL = "http://www.url.com"; 
    } else { 
     URL = "http://www.url2.com" 
    } 
</script> 
<div id="Banner" data-responsive="225h" onclick="window.open(URL,'new_window');"> 

더 좋은 솔루션과 같이 모두 인라인 클릭 핸들러를 제거하는 것입니다 :

<div id="Banner" data-responsive="225h"> ... </div> 
<script> 
    function openWindow() { 
     var URL; 
     if (condition) { 
      URL = "http://www.url.com"; 
     } else { 
      URL = "http://www.url2.com" 
     } 
     window.open(URL,'new_window'); 
    } 

    var banner = document.getElementById('Banner'); 
    banner.addEventListener('click', openWindow, false); //using addEventListener for brevity 
</script> 
+0

'if' 외부로'var'을 움직이는 것을 언급 할 수 있습니다. 그 변화는 간과 될 수 있습니다. – Cerbrus

+0

Javascript가 Div 앞에있는 경우에만 작동하는 것 같습니다. – user3160260

+0

더 좋은 예가 추가되었습니다. –

0
<script> 
    function a() { 
    if (condition) { 
    var URL = "http://www.url.com"; 
    } 
    else { 
    var URL = "http://www.url2.com" 
    } 
    window.open(URL); 
    } 
</script> 
<div id="Banner" data-responsive="225h" onclick="a();">click me</div> 

대체 솔루션

0

질문의 요점이 가지고하는 경우 클릭 가능한 서식있는 HTML 영역입니다. 앵커를 사용하고 그 안에 HTML 요소를 중첩하여 사용할 수 있습니다.이 훨씬 더 깨끗한 것을 볼 수 있습니다.

<a href="http://www.google.com" target="_blank"> 
<p> I am an element inside an anchor</p> 
<!-- you can put an image here instead --> 
</a> 

http://jsfiddle.net/CpXVB/