什么是这个功能的外部

时间:2012-02-14 17:12:19

标签: extern google-closure-compiler

我只是不了解高级模式下的谷歌闭包编译器和相应的外部。

具体:任何人都可以告诉我如何让CC保持高级模式重命名这个功能,因为我需要从我的HTML(<a href="javascript:searchAddress();">)调用它?

function searchAddress() {

    geocoder = new google.maps.Geocoder();
    var useraddress = $('#where').val();

    if (geocoder && useraddress) {   
        geocoder.geocode( {'address': useraddress, 'region': region}, function(results, status) {
            if (status == google.maps.GeocoderStatus.OK) {
                myPosition = results[0].geometry.location;
                myAccuracy = 150;
                echoAddress(results[0].formatted_address);
            }
        });
    }
}

我以为我理解我需要编写一个extern文件,因为函数是从外部代码调用的,传递类似

的内容
window['searchAddress'] = searchAddress

function searchAddress() {}

但这些和其他几个尝试都没有奏效。 CC编译没有错误,但浏览器抱怨

  

未捕获的异常:ReferenceError:未定义的变量:searchAddress

searchAddress()已被CC删除,不再是我的min.js中的函数名。谢谢你的任何提示。感谢解释,谢谢。

1 个答案:

答案 0 :(得分:0)

您不需要创建extern,您想要导出函数:

http://code.google.com/closure/compiler/docs/api-tutorial3.html

将其添加到代码(不是extern文件):

window ['searchAddress'] = searchAddress