为了账号安全,请及时绑定邮箱和手机立即绑定

JS 通过 dir 解析 php 脚本添加空白图像名称

JS 通过 dir 解析 php 脚本添加空白图像名称

PHP
慕码人8056858 2023-08-19 16:39:54
有一个带有无限滚动画廊的页面,它工作正常,但在脚本末尾它附加了 1 个空白图像,使 1 个图像再次损坏。无法理解问题出在哪里:(是否有任何解决方案如何使用 JS 将其从 feed 中删除,或者使用 php 解析器存在 mystake ?JS代码  var contentHeight = 800;  var pageHeight = document.documentElement.clientHeight;  var scrollPosition;  var n = 9;  var xmlhttp;    function putImages(){             if (xmlhttp.readyState==4)        {            if(xmlhttp.responseText){               var resp = xmlhttp.responseText.replace("\r\n", "");                resp=resp.replace("\r", "");                resp=resp.replace("\n", "");                var files = resp.split(";");                var j = 0;                for(i=0; i<=files.length; i++){                    if(files[i] != ""){                       document.getElementById("container").innerHTML += ' <div class="masonry-brick" ><div class="item masonry-item"><img src="https://site.eu/img/'+files[i]+'" alt="Masonry Brick" class="masonry-content"/></div></div>';                       j++;                                            if(j == 3 || j == 6)                            document.getElementById("container").innerHTML += '';                        else if(j == 9){                            //document.getElementById("container").innerHTML += '<p>'+(n-1)+" Images Displayed | <a href='#header'>top</a></p><hr />";                            j = 0;                        }                    }                }            }        }  }                        function scroll(){             if(navigator.appName == "Microsoft Internet Explorer")          scrollPosition = document.documentElement.scrollTop;      else          scrollPosition = window.pageYOffset;                     if((contentHeight - pageHeight - scrollPosition) < 500){                             if(window.XMLHttpRequest)              xmlhttp = new XMLHttpRequest();          else      }    }
查看完整描述

2 回答

?
MM们

TA贡献1886条经验 获得超2个赞

问题出在 putImages Javascript 函数中,如下所示:

for(i=0; i<=files.length; i++){

这个 for 循环运行了太多次,因为你有“i 小于或等于files.length”。因为我从零开始,所以你在这里只需要“小于”。IE:

for(i=0; i<files.length; i++){

因为它进行了额外的循环,所以 files[i] 返回“未定义”。Undefined 不是空字符串,因此它传递了 if 语句并尝试输出。


查看完整回答
反对 回复 2023-08-19
?
慕斯709654

TA贡献1840条经验 获得超5个赞

发现问题了!

而不是这个 resp=resp.replace("\r", "");  resp=resp.replace("\n", "");

它需要像这样

resp=resp.replace("/(\r\n|\n|\r|↵)/gm", "");  resp=resp.replace("/(\r\n|\n|\r|↵)/gm", "");


查看完整回答
反对 回复 2023-08-19
  • 2 回答
  • 0 关注
  • 108 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信