1

我在我的网站上使用免费的天气预报小部件。

<script type="text/javascript" src="http://tools.tititudorancea.com/weather_forecast.js?place=zurich_2&amp;s=1&amp;days=5&amp;utf8=no&amp;columns=5&amp;temp=c"></script>
<div style="font: 10px Arial, sans-serif; color: #000000" align="right">
<a href="http://www.tititudorancea.com/z/weather.htm">Weather forecast</a> provided by <a href="http://www.tititudorancea.com/">tititudorancea.com</a></div>

我的网页永远不会自动重新加载,然后天气将永远不会更新。有没有办法在不刷新所有页面的情况下刷新 javascript?

提前致谢

4

3 回答 3

2

您可以在 url 的末尾添加一个虚假的查询变量来强制刷新。首先在您的脚本标签中添加一个 id,然后尝试以下操作:

var weather = document.getElementById('weather');

weather.src += '&bogus='+ new Date(); // init

setInterval(function() {
  weather.src = weather.src.replace(/&.+$/, '&bogus='+ new Date());
}, 1000);
于 2013-05-26T12:50:41.223 回答
0

这是我找到的解决方案。

var weatherURLSite = "http://tools.tititudorancea.com/weather_forecast.js?place=$placeID$&s=1&days=5&utf8=no&columns=5&temp=c";    
var specificWeather = weatherURLSite.replace("$placeID$", value);   
$.ajax({
            type: "POST",
            async: false,
            url: weatherURL,
            data: { url: specificWeather }
        }).done(
            function (content) {
                var li = "<li id='" + value + "'>" + content + creditsDiv + "</li>";
                $("#weather").append(li);                   
            });

我添加了一个计时器来定期刷新

var weatherTimer = self.setInterval(function () { GetReloadWeather('@Url.Action("GetWeather","Weather")'); }, 3600000);
于 2013-09-05T08:56:55.143 回答
0

在我的项目中,我最终使用了 jQuery 'replaceWith' 函数

jQuery("script").eq(2).replaceWith('<script type="text/javascript" src="/state.js"></script>');
于 2015-11-08T18:53:00.130 回答