Javascript:使用var值作为onclick window.open URL

时间:2014-02-19 07:38:24

标签: javascript onclick window.open

如何使用var值并将其传递给window.open网址?我真的不擅长这个,所以越简单就越好。非常感谢你!

<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 个答案:

答案 0 :(得分: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>

答案 1 :(得分: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>

替代解决方案

答案 2 :(得分: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/
相关问题