我在论坛上找了很多动态加载js的方法答案,效果不是很理想,后来在sina里看到了答案。
缘由是这样的:
我现在需要动态取天气预报,sina里有查询的api
url是:http://php.weather.sina.com.cn/iframe/index/w_cl.php?code=js&day=0&city=上海
该url返回的一个js方法
内容是:
(function(){var w=[];w['上海']=[{s1:'雷阵雨',s2:'雷阵雨',f1:'leizhenyu',f2:'leizhenyu',t1:'35',t2:'27',p1:'3-4',p2:'3-4',d1:'西南风',d2:'东风'}];var add={now:'2011-07-04 15:17:20',time:'1309763840',update:'北京时间07月04日08:00更新',error:'0',total:'1'};window.SWther={w:w,add:add};})();//0
我程序需要调用这个接口,并解析其中的数据显示在页面上,我先通过程序读取该url,并把返回的js原样不变动态输出
程序接口叫:sinaweather.action?city=上海
此时我页面需要使用jquery的方式动态调用我的action并把查询回来的结果显示在我的页面上
这需要使用到动态加载js,因为我的页面每输入一个城市,都要动态调用sinaweather.action?city=输入城市名 来方法返回对应城市的js代码,我把论坛上动态加载js的方式都使用了,但是就是不能取得sina返回的js代码中定义的参数SWther,再次点击则可以,原因分析是因为js是异步加载的,我点击查询的上海可能还没完成加载完成,这时候调用sina返回的js是有问题的。在sina里看到了答案:
function fetch_js(url,dispose){
var Snode = document.createElement("script");
Snode.setAttribute("type", "text/javascript");
if(url.indexOf("?") != -1){
url += "&random=" + (new Date()).getTime();
}else{
url += "?random=" + (new Date()).getTime();
};
Snode[Snode.onreadystatechange === null ? "onreadystatechange" : "onload"] = function(){
if (this.onreadystatechange){
if (this.readyState != "loaded" && this.readyState != "complete") {return false;}
};
if(dispose){dispose()};//完成js加载后,这里调用显示查询结果显示在页面上
this[this.onreadystatechange ? "onreadystatechange" : "onload"] = null;
}
Snode.setAttribute("src", url);
document.getElementsByTagName("head")[0].appendChild(Snode);
}
function show(){
for(i in SWther.w){
var s1= SWther.w[i][0].s1;
var h_t1= SWther.w[i][0].t1;
var l_t2= SWther.w[i][0].t2;
var d1 = SWther.w[i][0].d1;
var p1 = SWther.w[i][0].p1;
var s = "天气情况:"+s1+",最高气温:"+h_t1+",最低气温:"+l_t2+","+d1+" "+p1+"级";
$("#weather").html(s);
}
}
function go(){
var city = $("#city").val();
alert(city);
var url = encodeURI("./sinaWeather.action?city="+city+"&r="+Math.random());
fetch_js(url,show);
}
输入城市名:<input type="text" id="city" name="city" value="上海"/>
<input type="button" name="c_l" onclick="go()" value="查询">
<div id="weather"></div>
分享到:
相关推荐
IFRAME允许在网页中嵌入另一个完整的HTML文档,可以用于加载天气预报的子页面或组件,但具体用途需查看源代码才能确定。 综上所述,实现"js天气预报 js版天气预报接口"项目,需要掌握JavaScript基础、AJAX请求、API...
本文将详细介绍一个名为“天气预报js插件”的资源,它专为Web页面设计,可以帮助开发者轻松集成天气信息显示功能。 首先,我们要理解这个插件的核心——JavaScript(js)。JavaScript是一种广泛用于客户端Web开发的...
- 动画效果:为了让天气预报更生动,JavaScript可以添加动画效果,如动态加载、滑动显示未来几天的天气预报等。 3. CSS样式设计: - webQQ风格:CSS用于美化页面,使天气预报组件符合webQQ的设计风格。这可能涉及...
在本文中,我们将深入探讨如何利用AJAX(异步JavaScript和XML)技术来实现一个实时、无需刷新页面的天气预报功能。 AJAX 是一种创建动态网页的技术,通过在后台与服务器进行少量数据交换,可以在不重新加载整个网页...
在这个"js天气预报"项目中,我们关注的是如何使用纯JavaScript来获取并展示天气预报信息,而无需依赖外部框架如iframe或者其他服务器端的技术。 在JavaScript中实现天气预报功能,主要涉及以下几个关键知识点: 1....
为了提供更好的用户体验,可以考虑添加加载指示器,在请求进行时显示,请求完成后隐藏。此外,还可以使用缓存策略,避免频繁请求相同的数据,或者使用WebSocket实现实时天气更新。 总之,利用AJAX技术,开发者可以...
同时,"内有实现省市联动的js"表明应用中包含了一段JavaScript代码,用于处理省市区的选择联动,即当用户选择一个省份时,会自动加载并显示该省下属城市的列表,进一步选择城市后,会更新天气信息。 关于"JS获取...
《jQuery天气预报查询代码》 本项目是一款基于jQuery和高德地图API实现的天气预报查询工具,主要用于展示全国各城市的实时天气信息。该工具利用HTML、CSS和JavaScript(特别是jQuery库)来构建用户界面和处理数据...
在这款天气预报插件中,jQuery的主要作用可能是实现页面元素的动态更新,如当用户加载或刷新页面时,自动获取并显示他们的地理位置信息。 要实现自动定位,插件可能利用HTML5的Geolocation API。这个API允许网页...
在这个"js做的天气预报的程序"项目中,初学者可以学习到如何利用JavaScript来获取和展示实时天气信息。 首先,这个小程序的核心功能是获取天气数据。这通常通过调用第三方API来实现,比如OpenWeatherMap、...
HTML也可能包含`<img>`标签来加载天气图标,或者使用`<script>`标签引入JavaScript代码,虽然这个项目描述中没有提到动态功能,但在实际应用中,可能需要JavaScript来处理用户交互或动画效果。 在复刻这个天气预报...
在本案例中,我们将利用XMLHTTP来获取并显示天气预报信息,这涉及到的技术主要包括Ajax、JSON格式数据处理以及DOM操作。 首先,Ajax(Asynchronous JavaScript and XML)是一种创建动态网页的技术,它允许在不重新...
3. **加载天气网页**:调用WebView的loadUrl()方法,传入天气预报网页的URL。 4. **处理重定向和错误**:注册WebViewClient并覆盖其shouldOverrideUrlLoading()和onReceivedError()方法,以便处理网页重定向和加载...
【AJAX天气预报系统】是一种基于Asynchronous JavaScript and XML(异步JavaScript与XML)技术的Web应用程序,它允许网页在不重新加载整个页面的情况下与服务器交换数据并更新部分网页内容。这种技术极大地提升了...
在IT行业中,JavaScript(简称JS)是一种广泛应用于前端开发的编程语言,它可以为网页添加交互性和动态功能。在这个“JS天气预报”项目中,我们将会探讨如何利用JS进行网络请求来获取天气数据,并通过数据解析将这些...
描述中提到的“实现天气预报查询,有天气预报接口”,表明这个小程序的核心功能是通过调用外部的天气预报接口来获取数据,并显示给用户。天气预报接口通常是第三方服务提供商提供的API(应用程序接口),允许开发者...
在这个项目中,jQuery被用来优化用户界面交互,如输入城市名后触发天气查询请求,以及动态展示查询结果。 2. **百度地图API**:百度地图提供了一系列的服务接口,包括地理位置定位、地图显示、路线规划等。在这个...
对于天气预报,JavaScript可能通过API接口与第三方天气服务进行交互,获取并更新实时天气信息。 4. **日历功能**: 实现日历功能通常需要JavaScript事件监听器来处理用户的点击或滚动,以及可能的数据结构来存储和...
《jQuery天气预报插件模板详解》 在网页设计与开发中,为了提升用户体验,许多开发者会集成实时天气预报功能。jQuery作为一个轻量级、高效且易用的JavaScript库,为实现这一功能提供了便利。本篇文章将详细介绍一个...
4. JavaScript文件(如 weather.js):处理用户交互和动态加载天气数据。 5. 图片资源文件(如 images文件夹):提供插件所需的图标和其他视觉元素。 6. 数据库脚本(如 install.sql, upgrade.sql):用于在Discuz!...