代码之家  ›  专栏  ›  技术社区  ›  samer sboui

将onclick函数添加到信息窗口中的按钮

  •  -1
  • samer sboui  · 技术社区  · 8 年前

    InfoWindow 所容纳之物

    这是我代码的一部分:

    for (i = 0; i < markers.length; i++) {
        var position = new google.maps.LatLng(markers[i][0], markers[i][1]);
        var icon = {
            url:"http:///".concat(markers[i][3]),
            scaledSize: new google.maps.Size(20, 20), // scaled size
            origin: new google.maps.Point(0,0), // origin
            anchor: new google.maps.Point(0, 0)
        };
        marker = new google.maps.Marker({
            position: position,
            map: map,
            title: markers[i][4].toString().concat(' ').concat(markers[i][5].toString()),
            icon: icon, 
            url:'im:<sip:'+markers[i][6]+'>'
        });
        var infowindow = new google.maps.InfoWindow({
            content: ''
        });
        marker.addListener('mouseover', function() { 
            infowindow.setContent('<p><label>Name:</label> '+this.title+'</p>' +
                '<center><button class="btn btn-primary" \n\
                onclick="myFunction(){ window.location.assign(this.url);}">Call</button></center>'); 
             infowindow.open(map, this);
        });
    }
    2 回复  |  直到 8 年前
        1
  •  0
  •   R.K.Saini    8 年前

    在onclick处理程序函数中 将引用button元素而不是marker对象,这就是为什么它不起作用,因为button不是任何类似url的属性。

    试试这个:

    for( i = 0; i < markers.length; i++ ) {
     var position = new google.maps.LatLng(markers[i][0], markers[i][1]);
     var icon = {url:"http:///".concat(markers[i][3]),
                 scaledSize: new google.maps.Size(20, 20), // scaled size
                 origin: new google.maps.Point(0,0), // origin
                 anchor: new google.maps.Point(0, 0) };
     marker = new google.maps.Marker({
         position: position,
         map: map,
         title: markers[i][4].toString().concat(' ').concat(markers[i][5].toString()),
         icon: icon, 
         url:'im:<sip:'+markers[i][6]+'>'
     });
     var infowindow = new google.maps.InfoWindow({
                content: ''
     });
     marker.addListener('mouseover', function() { 
        infowindow.setContent('<p><label>Name:</label> '+this.title+'</p>' +
                              '<center><a class="btn btn-primary" href="'+this.url+'">Call</a></center>'); 
        infowindow.open(map, this);
    });
    
        2
  •  0
  •   tomcek112    8 年前

    这个 onclick

     for( i = 0; i < markers.length; i++ ) {
         var position = new google.maps.LatLng(markers[i][0], markers[i][1]);
         var icon = {url:"http:///".concat(markers[i][3]),
                     scaledSize: new google.maps.Size(20, 20), // scaled size
                     origin: new google.maps.Point(0,0), // origin
                     anchor: new google.maps.Point(0, 0) };
         marker = new google.maps.Marker({
             position: position,
             map: map,
             title: markers[i][4].toString().concat(' ').concat(markers[i][5].toString()),
             icon: icon, 
             url:'im:<sip:'+markers[i][6]+'>'
         });
         var infowindow = new google.maps.InfoWindow({
                    content: ''
         });
         marker.addListener('mouseover', function() { 
            infowindow.setContent('<p><label>Name:</label> '+this.title+'</p>' +
                                  '<center><button class="btn btn-primary" \n\
                                 onclick="window.location.assign(' + this.url + ');">Call</button></center>'); 
            infowindow.open(map, this);
        });