V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
binghe
V2EX  ›  程序员

求助,如下 HTML 代码,套到程序上时,提示错误。

  •  
  •   binghe · 2015-09-19 21:28:51 +08:00 · 2809 次点击
    这是一个创建于 3349 天前的主题,其中的信息可能已经有所发展或是发生改变。
    而且有几条内容就跳几个窗口出来。



    出错的是 IE8 。 IE10 和 chrome 就没有问题。

    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
    <HTML lang=zh-CN dir=ltr>
    <HEAD>
    <META content="IE=7.0000" http-equiv="X-UA-Compatible">
    <meta http-equiv="Content-Type" content="text/html; charset=<?php echo $cfg_soft_lang; ?>">
    <TITLE>人员管理</TITLE>
    <LINK rel=stylesheet type=text/css href="css/rygl.css">
    <SCRIPT type=text/javascript src="js/jquery-1.11.1.min.js"></SCRIPT>
    <SCRIPT type=text/javascript>
    $(function ($){

    function initTabs (tabs,tabcons,index ){
    tabs.on ('mouseenter',function (){
    var $this = $(this );
    if ($this.hasClass ("current")){return;}
    $this.siblings (".current").removeClass ("current");
    $this.addClass ("current");
    tabcons.eq (index ).hide ();
    index = $this.index ();
    tabcons.eq (index ).show ();
    });
    }
    //initTabs ($('#J_tab1 .tab'),$('#J_tab1 .tab_con'),0 );

    $(".profile").mouseenter (function (){$(this ).addClass ("hover");}).mouseleave (function (){$(this ).removeClass ("hover");});


    });
    </SCRIPT>
    <BODY>
    <DIV class="g-body f-cb">
    <!--右侧内容开始-->
    <DIV class=g-main>
    <DIV id=J_tab1>
    <DIV class=tab1>
    <UL class=f-cb>
    <LI class="tab current"><A>个人档案</A> </LI>
    <LI class=tab><A
    href="dangan_list.htm">离职人员档案</A> </LI>
    <LI class="tab last"></LI>
    </UL></DIV>
    {dede:datalist}
    <DIV class=tab_con>
    <DIV class=panel2>
    <DIV class="profile f-cb">
    <DIV class=avatar><IMG onerror="this.src='/bgy/resources/bgy/images/people.png'" src="rygl/people.png"></DIV>
    <DIV class="content f-pr">
    <?php
    $sql="select * from #@__addon17 where aid=".$fields['id'];
    $data=$db->GetOne ($sql );
    ?>
    <DIV class=edit1><A class=a1 href="archives_do.php?aid={dede:field.id/}&dopost=editArchives">编辑</A>
    <A class=a1 href="javascript:dele ('59')">删除</A></DIV>
    <H4><A href="/plus/view.php?aid={dede:field.id/}" target=_blank>{dede:field.title/}</A></H4>
    <SPAN style="MARGIN-LEFT: 16px">班长</SPAN>
    <P>测试:男,生于 2015 年 9 月 5 日 ,班长,河北省石家庄市新华区人,共青团员, 2014 年 12 月 11 日参加工作,大专(测试)。</P>
    <TABLE class=statistics width="100%" align=center>
    <TBODY>
    <TR>
    <TD>培训<A href=""><SPAN class=num>0</SPAN></A>次</TD>
    <TD>受表彰<A href=""><SPAN class=num>0</SPAN></A>次</TD>
    <TD>被惩罚<A href=""><SPAN class=num>0</SPAN></A>次</TD>
    <TD>工资<A href="" target=_blank><span class="num">3</span></A><A href="" target=_blank></A>档</TD>
    <TD>&nbsp;</TD></TR></TBODY></TABLE></DIV></DIV></DIV>
    {/dede:datalist}
    </DIV></DIV></DIV></DIV><!--右侧内容结束-->
    <DIV></DIV>
    </BODY></HTML>
    5 条回复    2015-09-19 22:52:00 +08:00
    binghe
        1
    binghe  
    OP
       2015-09-19 21:30:05 +08:00
    这是 PHP 代码:

    <?php
    /**
    * 内容列表
    * content_s_list.php 、 content_i_list.php 、 content_select_list.php
    * 均使用本文件作为实际处理代码,只是使用的模板不同,如有相关变动,只需改本文件及相关模板即可
    *
    * @version $Id: content_list.php 1 14:31 2010 年 7 月 12 日 Z tianya $
    * @package DedeCMS.Administrator
    * @copyright Copyright (c ) 2007 - 2010, DesDev, Inc.
    * @license http://help.dedecms.com/usersguide/license.html
    * @link http://www.dedecms.com
    */
    require_once (dirname (__FILE__).'/config.php');
    require_once (DEDEINC.'/typelink.class.php');
    require_once (DEDEINC.'/datalistcp.class.php');
    require_once (DEDEADMIN.'/inc/inc_list_functions.php');

    $cid = isset ($cid ) ? intval ($cid ) : 0;
    $channelid = isset ($channelid ) ? intval ($channelid ) : 0;
    $mid = isset ($mid ) ? intval ($mid ) : 0;

    if (!isset ($keyword )) $keyword = '';
    if (!isset ($flag )) $flag = '';
    if (!isset ($arcrank )) $arcrank = '';
    if (!isset ($dopost )) $dopost = '';

    //检查权限许可,总权限
    CheckPurview ('a_List,a_AccList,a_MyList');

    //栏目浏览许可
    $userCatalogSql = '';
    if (TestPurview ('a_List'))
    {
    ;
    }
    else if (TestPurview ('a_AccList'))
    {
    if ($cid==0 && $cfg_admin_channel == 'array')
    {
    $admin_catalog = join (',', $admin_catalogs );
    $userCatalogSql = " arc.typeid IN ($admin_catalog ) ";
    }
    else
    {
    CheckCatalog ($cid, '你无权浏览非指定栏目的内容!');
    }
    if (TestPurview ('a_MyList')) $mid = $cuserLogin->getUserID ();

    }

    $adminid = $cuserLogin->getUserID ();
    $maintable = '#@__archives';
    setcookie ('ENV_GOBACK_URL', $dedeNowurl, time ()+3600, '/');
    $tl = new TypeLink ($cid );

    //----------------------------------------
    //在不指定排序条件和关键字的情况下直接统计微表
    //----------------------------------------
    if (empty ($totalresult ) && empty ($keyword ) && empty ($orderby ) && empty ($flag ))
    {
    $tinyQuerys = array ();

    if (!empty ($userCatalogSql ))
    {
    $tinyQuerys[] = str_replace ('arc.', '', $userCatalogSql );
    }

    if (!empty ($channelid ) && empty ($cid ))
    {
    $tinyQuerys[] = " channel = '$channelid' ";
    }
    else
    {
    $tinyQuerys[] = " channel>0 ";
    }

    if (!empty ($arcrank ))
    {
    $tinyQuerys[] = " arcrank='$arcrank' ";
    }
    else
    {
    $tinyQuerys[] = " arcrank > -2 ";
    }

    if (!empty ($mid ))
    {
    $tinyQuerys[] = " mid='$mid' ";
    }

    if (!empty ($cid ))
    {
    $tinyQuerys[] = " typeid in (".GetSonIds ($cid ).") ";
    }

    if (count ($tinyQuerys )>0 )
    {
    $tinyQuery = "WHERE ".join (' AND ',$tinyQuerys );
    }
    // 缓存处理
    $sql = "SELECT COUNT (*) AS dd FROM `#@__arctiny` $tinyQuery ";
    $cachekey = md5 ($sql );
    $arr = GetCache ('listcache', $cachekey );
    if (empty ($arr ))
    {
    $arr = $dsql->GetOne ($sql );
    SetCache ('listcache', $cachekey, $arr );
    }
    $totalresult = $arr['dd'];
    }

    if ($cid==0 )
    {
    if ($channelid==0 )
    {
    $positionname = '所有栏目&gt;';
    }
    else
    {
    $row = $tl->dsql->GetOne ("SELECT id,typename,maintable FROM `#@__channeltype` WHERE id='$channelid'");
    $positionname = $row['typename']." &gt; ";
    $maintable = $row['maintable'];
    $channelid = $row['id'];
    }
    }
    else
    {
    $positionname = str_replace ($cfg_list_symbol," &gt; ",$tl->GetPositionName ())." &gt; ";
    }

    //当选择的是单表模型栏目时,直接跳转到单表模型管理区
    if (empty ($channelid )
    && isset ($tl->TypeInfos['channeltype']))
    {
    $channelid = $tl->TypeInfos['channeltype'];
    }
    if ($channelid < -1 )
    {
    header ("location:content_sg_list.php?cid=$cid&channelid=$channelid&keyword=$keyword");
    exit ();
    }


    // 栏目大于 800 则需要缓存数据
    $optHash = md5 ($cid.$admin_catalogs.$channelid );
    $optCache = DEDEDATA."/tplcache/inc_option_$optHash.inc";

    $typeCount = 0;
    if (file_exists ($cache1 )) require_once ($cache1 );
    else $cfg_Cs = array ();
    $typeCount = count ($cfg_Cs );
    if ( $typeCount > 800 )
    {
    if (file_exists ($optCache ))
    {
    $optionarr = file_get_contents ($optCache );
    } else {
    $optionarr = $tl->GetOptionArray ($cid, $admin_catalogs, $channelid );
    file_put_contents ($optCache, $optionarr );
    }
    } else {
    $optionarr = $tl->GetOptionArray ($cid, $admin_catalogs, $channelid );
    }

    $whereSql = empty ($channelid ) ? " WHERE arc.channel > 0 AND arc.arcrank > -2 " : " WHERE arc.channel = '$channelid' AND arc.arcrank > -2 ";

    $flagsArr = '';
    $dsql->Execute ('f', 'SELECT * FROM `#@__arcatt` ORDER BY sortid ASC');
    while ($frow = $dsql->GetArray ('f'))
    {
    $flagsArr .= ($frow['att']==$flag ? "<option value='{$frow['att']}' selected>{$frow['attname']}</option>\r\n" : "<option value='{$frow['att']}'>{$frow['attname']}</option>\r\n");
    }


    if (!empty ($userCatalogSql ))
    {
    $whereSql .= " AND ".$userCatalogSql;
    }
    if (!empty ($mid ))
    {
    $whereSql .= " AND arc.mid = '$mid' ";
    }
    if ($keyword != '')
    {
    $whereSql .= " AND ( CONCAT (arc.title,arc.writer ) LIKE '%$keyword%') ";
    }
    if ($flag != '')
    {
    $whereSql .= " AND FIND_IN_SET ('$flag', arc.flag ) ";
    }
    if ($cid != 0 )
    {
    $whereSql .= ' AND arc.typeid IN ('.GetSonIds ($cid ).')';
    }
    if ($arcrank != '')
    {
    $whereSql .= " AND arc.arcrank = '$arcrank' ";
    $CheckUserSend = "<input type='button' class='coolbg np' onClick=\"location='catalog_do.php?cid=".$cid."&dopost=listArchives&gurl=content_list.php';\" value='所有文档' />";
    }
    else
    {
    $CheckUserSend = "<input type='button' class='coolbg np' onClick=\"location='catalog_do.php?cid=".$cid."&dopost=listArchives&arcrank=-1&gurl=content_list.php';\" value='稿件审核' />";
    }

    $orderby = empty ($orderby ) ? 'id' : preg_replace ("#[^a-z0-9]#", "", $orderby );
    $orderbyField = 'arc.'.$orderby;

    $query = "SELECT arc.id,arc.typeid,arc.senddate,arc.flag,arc.ismake,
    arc.channel,arc.arcrank,arc.click,arc.title,arc.color,arc.litpic,arc.pubdate,arc.mid
    FROM `$maintable` arc
    $whereSql
    ORDER BY $orderbyField DESC";

    if (empty ($f ) || !preg_match ("#form#", $f )) $f = 'form1.arcid1';

    //初始化
    $dlist = new DataListCP ();
    $dlist->pageSize = 30;

    //GET 参数
    $dlist->SetParameter ('dopost', 'listArchives');
    $dlist->SetParameter ('keyword', $keyword );
    if (!empty ($mid )) $dlist->SetParameter ('mid', $mid );
    $dlist->SetParameter ('cid', $cid );
    $dlist->SetParameter ('flag', $flag );
    $dlist->SetParameter ('orderby', $orderby );
    $dlist->SetParameter ('arcrank', $arcrank );
    $dlist->SetParameter ('channelid', $channelid );
    $dlist->SetParameter ('f', $f );

    //模板
    if (empty ($s_tmplets )) $s_tmplets = 'templets/userinfo_list.htm';
    $dlist->SetTemplate (DEDEADMIN.'/'.$s_tmplets );

    //查询
    $dlist->SetSource ($query );

    //显示
    $dlist->Display ();
    // echo $dlist->queryTime;
    $dlist->Close ();
    Web
        2
    Web  
       2015-09-19 21:54:05 +08:00
    这问题视乎是浏览器问题

    http://jingyan.baidu.com/article/c910274bc25c07cd361d2dc7.html

    这个连接貌似是你这种情况。你看看

    或者你加 这个代码( IE8 下有效):

    <SCRIPT LANGUAGE="JavaScript">

    <!--

    function stopError () {
    return true;
    }

    window.onerror = stopError;

    // -->


    </SCRIPT>
    SoloCompany
        3
    SoloCompany  
       2015-09-19 22:46:17 +08:00
    so
    明显是触发了死循环了啊(准确的说,应该是死递归)
    比如,某个 onchange 事件修改了自身的值,在某些奇葩浏览器上又触发了自身
    xfspace
        4
    xfspace  
       2015-09-19 22:49:43 +08:00 via iPad
    解决办法, ban 掉 IE 浏览器~
    binghe
        5
    binghe  
    OP
       2015-09-19 22:52:00 +08:00
    @Web 哥们,按照百度经验那个方法不管用。我的环境是 win2003+IE8.
    <SCRIPT LANGUAGE="JavaScript">

    <!--

    function stopError () {
    return true;
    }

    window.onerror = stopError;

    // -->


    </SCRIPT>
    这个也不管用,加上后还是弹的很欢乐。



    @SoloCompany 能更加详细的指点一下吗?你说的那个东西对我来说太高深了。
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   1182 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 22ms · UTC 23:18 · PVG 07:18 · LAX 15:18 · JFK 18:18
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.