谁能把下面的代码修改成符合w3c标准,也就是要符合<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">代码如下:<script language="javascript">
<!--
function keyDown(e) 
{
if (event.srcElement.tagName=='IFRAME' 
&& event.clientX==-1 
&& event.clientY==-1 
&& event.fromElement=='[object]')
{
var num = parseInt(shownum.innerHTML);
shownum.innerHTML = num + 1;
}
return false;

document.onmousemove=keyDown; 
document.onmouseover=keyDown ;
document.onmouseout=keyDown ;
document.onblur=keyDown;
//-->
</script>点击IFrame中的次数:<div id="shownum">0</div>
<iframe name='ad_click' marginwidth="0"
marginheight="0" frameborder="0" scrolling="no"
src='http://www.csdn.net/' width="100" 
height="100" style="width: 616px; height: 171px">
</iframe> 

解决方案 »

  1.   

    修改以下代码就是了:<div id="shownum">0</div>
    <iframe name='ad_click' marginwidth="0"
    marginheight="0" frameborder="0" scrolling="no"
    src='http://www.csdn.net/' width="100" 
    height="100" style="width: 616px; height: 171px">
    </iframe> js代码是不用管的!
      

  2.   

    据我测试,父层无法捕获在iframe中的点击事件,但可以获得它的“鼠标滑过”事件。代码在:IE, FireFox, Chrome, Opera下测试通过。
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml">
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
    <title>无标题文档</title>
    </head><body>
    <script language="javascript">
    <!--
    function keyDown(e) 
    {
      var 
        oEvt,
        oTag,
        oDiv;
      if(typeof(e)=="undefined")
      {
        oEvt = event;
      }
      else
      {
        oEvt = e;
      }  if(typeof(oEvt.srcElement)=="object")
      {
        oTag = oEvt.srcElement;
      }
      else
      {
        oTag = oEvt.target;
      }
      
      oDiv = document.getElementById("shownum");
      
      if(oTag.name == "ad_click")
      {
        var num = parseInt(oDiv.innerHTML);
        oDiv.innerHTML = num + 1;  
      }
      return false;
    }document.onmouseover=keyDown ;
    //-->
    </script>进入IFrame中的次数:<div id="shownum">0</div>
    <iframe name='ad_click' marginwidth="0"
    marginheight="0" frameborder="0" scrolling="no"
    src='http://192.168.0.88/fix' width="100" 
    height="100" style="width: 616px; height: 171px">
    </iframe> 
    </body>
    </html>
      

  3.   


    如果单纯这个应用,<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    这段代码当然不必保留,但是从整个论坛程序来说,没有上面这句是不行的所以问题在于怎么修改iframe和js代码,而不是去掉我上面那段代码,谢谢!
      

  4.   

    符合W3C的代码,DOCTYPE html PUBLIC怎么写都可以。
    楼主看看这是不是你要的效果
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
    <title>无标题文档</title>
    </head><body>
    <script language="javascript">
    <!--
    function keyDown(e) 
    {
      var 
        oEvt,
        oTag,
        oDiv;
      if(typeof(e)=="undefined")
      {
        oEvt = event;
      }
      else
      {
        oEvt = e;
      }  if(typeof(oEvt.srcElement)=="object")
      {
        oTag = oEvt.srcElement;
      }
      else
      {
        oTag = oEvt.target;
      }
      
      oDiv = document.getElementById("shownum");
      
      if(oTag.name == "ad_click")
      {
        var num = parseInt(oDiv.innerHTML);
        oDiv.innerHTML = num + 1;  
      }
      return false;
    }document.onmouseover=keyDown ;//-->
    </script>进入IFrame中的次数:<div id="shownum">0</div>
    <iframe name='ad_click' marginwidth="0"
    marginheight="0" frameborder="0" scrolling="no"
    src='http://csdn.net' width="100" 
    height="100" style="width: 616px; height: 171px">
    </iframe> 
    </body>
    </html>
      

  5.   


    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml">
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
    <title>无标题文档</title>
    <script type="text/javascript" language="javascript">
    <!--
    function keyDown(e) 
    { var num = parseInt(document.getElementById("shownum").value);
    SetAdvListener(1)
    document.getElementById("shownum").value = String(num + 1);
    document.getElementById("shownum").focus();

    if(navigator.userAgent.indexOf("MSIE")>0)
    {
    window.setTimeout("SetAdvListener();", 50, "javascript");
    }
    else
    {

    } return false;
    }
    function InitPage()
    {
    SetAdvListener();


    function SetAdvListener(flag)
    {
    var elm = document.getElementById("ad_click") ;
    if(flag==null)
    {
    if(navigator.userAgent.indexOf("MSIE")>0)
    {
    elm.attachEvent("onactivate", keyDown);
    }
    else
    {

    }
    }
    else
    {
    if(navigator.userAgent.indexOf("MSIE")>0)
    {
    elm.detachEvent("onactivate", keyDown);
    }
    else
    {

    }
    }
    }

    //-->
    </script>
    <body onload="javascript:InitPage();">
    <div>
    <span>点击IFrame中的次数:</span>
    <input id="shownum" readonly="readonly" type="text" value="0" style="BORDER: #666666 1px solid;width:50px;text-align:center;" />
    </div>
    <br />
    <div>
    <iframe id="ad_click" name='ad_click' marginwidth="0"
    marginheight="0" frameborder="1" scrolling="no"
    src='http://www.csdn.net/' width="100" 
    height="600" style="width: 1024px; height: 768px">
    </iframe>
    </div>
    </head>
    </html>
    利用onactivate事件, 在IE下面能用, 非IE下不行
    如果只是要统计广告点击的话, 可以用个透明层蒙在iframe上面, 这样变得很简单了
      

  6.   

    真的啊 我就是去掉了DOCTYPE 功能就实现了啊有朋友告诉我说,是我的功能有问题,说是我引入了其他页面,结果造成了2个DOCTYPE 冲突
    那么请问有什么语句可以屏蔽引入的DOCTYPE 吗
      

  7.   

    楼主就是想说话不算吧。这事就这样。DOCTYPE是有特殊规定的,只能出现一次,并且必须出现在文档的起始处,出现在 html 标签之前。其它的,即使是HTML,BODY这些标签,虽然不建议没事乱写,但是即便随便写了,比如在</BOBY></HTML>之后随便写个<HTML></HTML>也不会影响执行。而且有时候特别的后台程序也会把两个HTML合并到一个HTML里输出,出现这种情况,而这个时候就算正常了。因为HTML和BODY是区分两个网页的结构,即使合为一体,仍可用其来区分。但DOCTYPE,是指定整个这个输出页面的性质如何解析,不管下面集合了几个<HTML>和<BODY>,整个只能有一个DOCTYPE。
      

  8.   

    怎么好像弄混了?我回的问题应该是想在一个DIV里放置AJAX返回的内容里面带有DOCTYPE的。那是楼主问的吗。把问题说全面点,不要一个帖里说一部分,弄得每个帖都不同,都让管中窥豹,不得问题真相。