javascript - 尝试修复删除或添加广告时计数错误的 CGI 广告轮播脚本
问题描述
我有一个 CGI 脚本(输出 JavaScript),它有一个错误。有一个管理区域,您可以在其中添加和删除广告代码段。目前,当添加一个片段时,代码会错误计数,不计算片段的适当数量,并添加重复的数字。这个错误导致 2 个广告被放置在同一个地方。(图像中的“billboardlarge”只是您可以为广告区域指定的唯一名称)。
我认为问题可能出在代码的这个区域:
sub delete_item
{
$grpname = $q->param('grp');
$iname = $q->param('item');
$filename = $grpname . ".js";
$jsc = rotate::get_file_contents("$webdir/$filename");
@jlines = split (/\n/, $jsc);
$tms = @jlines;
$tms = $tms - 1;
$poscnt = 0;
$acn = 0;
$real_lnc = 0;
$new_lnc = 0;
for ($ms = 0; $ms < $tms; $ms++)
{
if ($ms == 2)
{
$jlines[2] =~ s/\///g; $jlines[2] =~ s/ //g;
$lasnr = $jlines[2];
$jlines[2] = $jlines[2] - 1;
$newnr = $jlines[2];
$jlines[2] = "//" . $jlines[2];
}
elsif ($ms == 3)
{
$jlines[3] =~ s/$lasnr\)\;/$newnr\)\;/g;
}
elsif ($ms > 3)
{
$nsl = $jlines[$ms];
if ($jlines[$ms] =~ m/\/\/ /g)
{
$r = pos($jlines[$ms]);
$sname = substr($jlines[$ms], $r, length($jlines[$ms]) - $r);
$sname =~ s/ //g;
if ($sname ne $iname)
{
$jlines[$ms] =~ s/ranNum == $real_lnc/ranNum == $new_lnc/g;
$new_lnc++;
}
else
{
$jlines[$ms] = "";
}
}
$real_lnc++;
}
}
我试图操纵 $tms 变量但没有成功。
如果需要,我可以提供整个脚本。(不会太长)。
任何帮助将不胜感激。
谢谢你。
解决方案
推荐阅读
- javascript - nodelist.removeChild 只工作一次
- r - 在 Linux Mint 中安装 R 依赖项
- ruby-on-rails - 无法解密 config/credentials.yml.enc。也许您传递了错误的密钥?
- python - 如何在下面提供的代码中修复名称未定义错误?
- java - Inet 地址库显示:Java Android Studio 应用程序上的主线程错误
- javascript - 如何从我的数据库中打开一个带有唯一消息 ID 的弹出窗口
- javascript - 在javascript svg中绘制点之间的路径
- rust - 创建对父节点的引用时,借用值的寿命不够长
- java - Spring Boot JPA - 是否可以使用 IDENTITY 生成器或等效项批量插入?
- javascript - 在 Thymeleaf 中的连续字符上拆分字符串