浏览器中的JQuery JavaScript错误,不是Dreamweaver
我试图创建一个网页,通过文本框获取一个位置,并在谷歌地图上绘制该位置附近最近发生的所有地震 我正在使用Dreamweaver调试我的代码,当我使用它包含的内置实时网页功能时,该网页可以完美地工作 但是,当我在浏览器中打开保存的文件时,我得到的只是一个错误“地理编码未成功,原因如下:错误”。这对找出问题所在并没有什么帮助,而且我对web语言和开发web站点的经验很少 如果您能提供任何帮助或见解,我将不胜感激浏览器中的JQuery JavaScript错误,不是Dreamweaver,javascript,jquery,html,ajax,json,Javascript,Jquery,Html,Ajax,Json,我试图创建一个网页,通过文本框获取一个位置,并在谷歌地图上绘制该位置附近最近发生的所有地震 我正在使用Dreamweaver调试我的代码,当我使用它包含的内置实时网页功能时,该网页可以完美地工作 但是,当我在浏览器中打开保存的文件时,我得到的只是一个错误“地理编码未成功,原因如下:错误”。这对找出问题所在并没有什么帮助,而且我对web语言和开发web站点的经验很少 如果您能提供任何帮助或见解,我将不胜感激 代码: 无标题文件 html{高度:100%} 正文{高度:100%;边距:0;填充:
代码:
无标题文件
html{高度:100%}
正文{高度:100%;边距:0;填充:0}
#地图画布{高度:100%}
var地理编码器;
var映射;
函数初始化(){
geocoder=新的google.maps.geocoder();
变量映射选项={
中心:新google.maps.LatLng(-34.397150.644),
缩放:8,
mapTypeId:google.maps.mapTypeId.ROADMAP
};
map=new google.maps.map(document.getElementById(“地图画布”),
地图选项);
}
函数代码地址()
{
var loc=document.getElementById('locText')。值;
geocoder.geocode({'address':loc},函数(结果,状态)
{
if(status==google.maps.GeocoderStatus.OK)
{
map.setCenter(结果[0].geometry.location);
var north=results[0]。geometry.location.lat()+1;
var south=results[0]。geometry.location.lat()-1;
var east=results[0].geometry.location.lng()+1;
var west=results[0].geometry.location.lng()-1;
var-url;
url='1〕http://api.geonames.org/earthquakesJSON?north=“+north+”&south=”+south+”&east=“+east+”&west=“+west+”&username=jpcguy89';
$.ajax(url、函数(地震)
{
$。每个(地震、地震、功能(k、aQuake){
var contentString=''+'ID:'+aQuake.eqid+''+'magnity:'+aQuake.magnity+'Date:'+aQuake.datetime+'Depth:'+aQuake.Depth+';
var infowindow=new google.maps.infowindow
({
内容:contentString
});
var latLng=新的google.maps.latLng(aQuake.lat,aQuake.lng);
var marker=new google.maps.marker
({
位置:latLng,
地图:地图,
标题:“地震('+aQuake.eqid+')”
});
google.maps.event.addListener(标记'click',函数()
{
信息窗口。打开(地图、标记);
});
});
});
}
其他的
{
警报('地理编码因以下原因未成功:'+状态);
}
});
}
google.maps.event.addDomListener(窗口“加载”,初始化);
城市/地点:
您似乎正在加载混合协议资源 您的JSFIDLE似乎缺少一个ressource() 修复代码以访问非httpS。。然后再试一次 在您的JSFIDLE上看到:
> Timestamp: 9/30/2013 3:40:41 PM Error: ReferenceError: google is not
> defined Source File: fiddle.jshell.net/mZGL3/show Line: 93
我用ressource更新了您的,现在,错误是:{“error”:“请使用POST请求”}您正在HTML中绑定单击处理程序:
<input type="submit" id="submit" onclick="codeAddress()" />
演示:
编辑:您遇到的另一个问题是呼叫。该方法需要一个对象,但您正在传递一个函数。您可以更改代码以传递对象,将您现在拥有的函数设置为success
属性:
$.ajax(url, {
success: function(quakes) {
...
}
});
或use,它接受函数作为第二个参数:
$.get(url, function (quakes) {
...
});
演示:哪些浏览器显示此错误?是一直都会发生,还是只在某些位置发生?协议!请注意您的协议:在JSFIDLE上看到:Timestamp:9/30/2013 3:40:41 PM错误:ReferenceError:google未定义源文件:行:93您是否以
文件的形式打开此文件://
而不是从服务器打开?浏览器显示错误的是Safari和Chrome。我以文件的形式运行它://,而不是从服务器运行(我无法使用我的ip或本地主机打开它)。这解决了一半的问题(谢谢,因为这是一个很大的帮助!)。然而,它仍然没有显示标记。有什么建议吗?@jpcguy89-将$.ajax()
更改为$.get()
。我已经更新了我的答案。非常感谢你的帮助!
$(function(){
$("#geonamesFetch").on("submit", function(e) {
e.preventDefault();
codeAddress();
});
});
$.ajax(url, {
success: function(quakes) {
...
}
});
$.get(url, function (quakes) {
...
});