功能未在Firefox上定义

时间:2013-09-09 07:31:23

标签: javascript

我遇到了一个问题,我的功能未定义,但仅限于Firefox,但在Chrome上它完美无缺。我不知道为什么会这样做。这可能是因为firefox需要更新或其他什么?请帮忙。

 bindInfoW(marker, content, infowindow);

 function bindInfoW(marker, content, infowindow) {
     google.maps.event.addListener(marker, 'click', function (){
         infowindow.setContent(content);
         infowindow.open(map, marker);
     });
 }  

5 个答案:

答案 0 :(得分:4)

Firefox比其他浏览器有点严重,需要您在调用之前定义您的函数:

function bindInfoW(marker, content, infowindow)
{
    google.maps.event.addListener(marker, 'click', function() {
        infowindow.setContent(content);
        infowindow.open(map, marker);
    });
}   

bindInfoW(marker, content, infowindow);

答案 1 :(得分:1)

我认为这是因为javascript提升功能。建议在块的顶部(功能或全局范围)对所有需要进行decalre,然后使用它 你可以找到一些例子here

你的函数(bindInfoW)必须在javascript中提升,但我不知道为什么这在FF中不起作用

答案 2 :(得分:0)

在>之后调用函数。

答案 3 :(得分:0)

试试这段代码:

 function bindInfoW(marker, content, infowindow) {
     google.maps.event.addListener(marker, 'click', function (){
         infowindow.setContent(content);
         infowindow.open(map, marker);
     });
 }  
 bindInfoW(marker, content, infowindow);

答案 4 :(得分:0)

Firefox不会在块中提升功能。 将您的函数声明放在if / else块之外,它应该按原始顺序工作。

有关此问题的更多详细信息: http://statichtml.com/2011/spidermonkey-function-hoisting.html