我正在使用jQuery的插件。它在webkit中运行良好,但是当我在firefox中尝试它时,我得到以下firefox错误:
google.maps.Geocoder is not a constructor
$('.to, .from').geo_autocomplete(new google.maps.Geocoder, {
以下是所有jquery:
$('.to, .from').geo_autocomplete(new google.maps.Geocoder, {
mapkey: 'ABQIAAAAbnvDoAoYOSW2iqoXiGTpYBT2yXp_ZAY8_ufC3CFXhHIE1NvwkxQNumU68AwGqjbSNF9YO8NokKst8w',
selectFirst: false,
minChars: 3,
cacheLength: 50,
width: 235,
scroll: true,
scrollHeight: 330
});
什么是构造函数和firefox如何指出它?
答案 0 :(得分:6)
构造函数是将new
与该函数的名称结合使用时调用的函数(返回函数名称类型的对象),例如:
function Person(name, age) {
//blah
}
var me = new Person("Jacob", 20);
答案 1 :(得分:5)
任何本机函数都可以作为构造函数调用(即使它不是设计的)。任何不可调用的东西也不能是构造函数。例如new 3
给出了同样的错误。
在您的网页中,google.maps.Geocoder
只是undefined
,这肯定无济于事。查看Google的maps script它未能加载Geocoder模块,因为它正在使用document.write
这样做,这个方法必须在解析时从HTML文档中包含的<script>
运行,不是像你在这里那样使用DOM脚本导入的。
当然不希望从通过客户端XSLT加载的页面运行。这将给你很多浏览器问题和零搜索引擎优化的存在。这种疯狂的目的是什么?
答案 2 :(得分:1)
您必须使用google.maps.geocoder:
$('.to, .from').geo_autocomplete(new google.maps.Geocoder({
mapkey:'ABQIAAAAbnvDoAoYOSW2iqoXiGTpYBT2yXp_ZAY8_ufC3CFXhHIE1NvwkxQNumU68AwGqjbSNF9YO8NokKst8w',
selectFirst: false,
minChars: 3,
cacheLength: 50,
width: 235,
scroll: true,
scrollHeight: 330
}));
答案 3 :(得分:1)
实例化对象时,例如创建一个对象的实例,构造函数是在对象中调用的第一个方法。
当你打电话时
new google.maps.Geocoder
...您正在尝试使用new关键字实例化对象的无参数构造函数。在这种情况下,Geocoder不是可以在没有参数的情况下实例化的类,或者根本不是。