首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Firefox3.6上的JavaScript字符串连接错误

Firefox3.6上的JavaScript字符串连接错误
EN

Stack Overflow用户
提问于 2011-11-20 18:16:16
回答 3查看 190关注 0票数 0

这是我的简单脚本:

代码语言:javascript
复制
<script>
    $("#adv").ready(function(){
        var x = 0;
    setInterval(function(){
            $("#adv").html('');
            x++;
            $('<img src="http://url/adv'+x+'.png?u=1&s=1&a='+x+'" />').appendTo('#adv');
            if(x == 2) {
                x = 0;
            }
        }, 20000);

    });
  </script>

每20秒旋转一次图像文件。工作非常完美,但有时在服务器日志中可以看到:

代码语言:javascript
复制
GET /adv%2527+x+%2527.png   403 Mozilla/5.0%20(Macintosh;%20U;%20PPC%20Mac%20OS%20X%2010.4;%20en-US;%20rv:1.9.2.4)%20Gecko/20100611%20 *Firefox/3.6.4*

GET /adv%2527+x+%2527.png   403 Mozilla/5.0%20(Windows;%20U;%20Windows%20NT%206.1;%20pl;%20rv:1.9.2.23)%20Gecko/20110920%20Firefox/3.6.23 

因此,脚本与配额连接脚本:/adv%2527+x+%2527.png,这只适用于Firefox3.6.x

我还在我的Firefox 3.6最新版本上测试了这一点,但这对我来说从来没有发生过。

有人知道我应该如何连接字符串以避免这个问题吗?

EN

回答 3

Stack Overflow用户

发布于 2011-11-20 19:02:52

你确定奇怪的请求真的来自浏览器吗?在我看来,一个网络机器人或网络爬虫正在遍历你的HTML,看到你的脚本,看到看起来像URL的东西,然后访问它。请注意,您所看到的URL不包括查询部分,这是这方面的症状。

票数 1
EN

Stack Overflow用户

发布于 2011-11-20 18:27:57

也许您应该将属性type=text/javascript添加到<script>标记中。浏览器可能没有执行脚本,而是尝试用源http://url/adv'+x+'.png?u=1&s=1&a='+x+'加载映像,它将url编码到日志中。

票数 0
EN

Stack Overflow用户

发布于 2011-11-20 18:34:57

我认为问题在于setTimeout的使用。除非浏览器执行setTimeout,否则不会执行该函数,我认为当浏览器卸载页面和垃圾收集时,收集所有脚本,而不是在setTimeout中运行函数,并且找不到变量x,因为它已经清理完毕,而不仅仅是将其作为字符串添加并注入图像。

我猜这种事不会发生那么多吧?

如果是这种情况,您将通过清除页面卸载上的setTimeout来解决这个问题。

希望它对PM5544有帮助。

票数 -1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/8203595

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档