2014-02-19 73 views
1

如何使用VAR值,並將其傳遞給window.open網址是什麼?我真的不擅長這一點,所以越簡單越好。非常感謝你!的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

公告有圍繞URL變量沒有引號window.open。爲了更簡潔,我已將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

您可能想提及將'var'移到'if'之外。這種改變可能被忽視。 – 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/