ASP.NET页面里有个Object控件,我在里面放了一个视频。页面是个弹出页面,GridView上的多个链接都指向这一个页面,根据传来的不同ID替换Object里的视频路径。这样做有一个问题,就是关闭页面以后,视频的声音还在,于是我想着是不是可以用JavaScript控制一下Object,在页面刷新或者关闭的时候outerHTML一下。但是每次弹出页面以后,刷新或者关闭,都提示无法找到对象,只写一句alert(“ok”)也是一样的效果。页面别的JavaScript语句都执行的没有问题,只是这个有问题,是怎么回事?

解决方案 »

  1.   

    Script语句我也放在最下面,但是仍旧是获取不到
      

  2.   

    不明白
    是个什么Object?
    是new出来的吗?
      

  3.   

    你在弹出的页面上右键打开源代码,找找看,有没有你的Object
      

  4.   

    这个是Object的代码
     <object classid="clsid:6BF52A52-394A-11D3-B153-00C04F79FAA6" id="Vedeo"
                                                    width="464" height="374" name="cats">
                                                    <param name="URL" value="<%=ConfigurationManager.AppSettings["urlGCVideo"].ToString()%><%=Request.QueryString["FileName"] %>/0.swf" />
                                                    <param name="rate" value="1" />
                                                    <param name="autostart" value="-1" />
                                                    <param name="balance" value="0" />
                                                    <param name="currentPosition" value="0" />
                                                    <param name="defaultFrame" value="" />
                                                    <param name="playCount" value="1"/>
                                                    <param name="autoStart" value="-1" />
                                                    <param name="currentMarker" value="0" />
                                                    <param name="invokeURLs" value="-1" />
                                                    <param name="baseURL" value="" />
                                                    <param name="volume" value="50" />
                                                    <param name="mute" value="0" />
                                                    <param name="uiMode" value="full" />
                                                    <param name="stretchToFit" value="0" />
                                                    <param name="windowlessVideo" value="0" />
                                                    <param name="enabled" value="-1" />
                                                    <param name="enableContextMenu" value="1" />
                                                    <param name="fullScreen" value="0" />
                                                    <param name="SAMIStyle" value="" />
                                                    <param name="SAMILang" value="" />
                                                    <param name="SAMIFilename" value=""/>
                                                    <param name="captioningID" value="" />
                                                    <param name="enableErrorDialogs" value="0" />
                                                </object>
                                                </div>
    就是一个网页播放器
      

  5.   

    打开源代码源代码也可以找到Object
      

  6.   

    你将obj重新在页面里面注册试下!
      

  7.   

    <script   type= "text/javascript ">
        function   reset() 
                        { 
                               
                            document.getElementById ('vedeo').outerHTML="";
                            //alert("ok!");
                        }   
    </script>
    就这么一句,我在body的onbeforeunload事件里调用了一下,但是总提示缺少对象
      

  8.   


    document.getElementById ('vedeo').outerHTML=""; 
    注意逗号和大小写
      

  9.   

    我用过flvplayer来做视频,不记得有你提过的这个问题,视频关掉后声音也会随着关,不过当时用的是rtmp协议方式的传输方式,代码如下(.jsp),看看对你有没有什么帮助<head>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
    <title></title>
    <script type="text/javascript" src="swfobject.js"></script>
    </head>
    <html:html>
    <body bgcolor="#CCCCCC">
    <div vliagn="center" width="100%" height="100%">
    <p id="player1"><a href="http://www.macromedia.com/go/getflashplayer">Get the Flash Player</a> to see this player.</p>
    </div>
    <script type="text/javascript">
    var s1 = new SWFObject("flvplayer.swf","single","100%","99%","7");
    s1.addParam("allowfullscreen","true");
    s1.addVariable("file","${sessionScope.urlValue}");
    s1.addVariable("id","${sessionScope.titleName}");
    s1.addVariable("image","aa.jpg");
    s1.addVariable("clicktext",""); 
    s1.addVariable("bufferlength","5");
    s1.write("player1");
    </script>
    </body>
    </html:html>
      

  10.   

    你可以在 <object classid="clsid:6BF52A52-394A-11D3-B153-00C04F79FAA6" id="Vedeo......>外面套一层div改进后代码如下 
    <div id="myobj">
    <object classid="clsid:6BF52A52-394A-11D3-B153-00C04F79FAA6" id="Vedeo......>
    </div>
    js 语句
    document.getElementById("myobj")innerHTML = "你想要的内容";
      

  11.   

    多半是你的object和function  不在同一个页面里面或者是弹出页面不能用document.getElementById这种方式?
      

  12.   

    object和function 在同一页面里,本来想贴页面源码,但是太大超出范围了。
    我单独运行页面,直接在URL里传值,得到的效果也是一样的,缺少对象。
    加DIV,Table的方法我都试过了,都是一样的效果。
    这个问题困扰了我好几天了,实在是郁闷
      

  13.   

    我试过咯,弹出页面也是正常的document.getElementById ('vedeo').outerHTML=""; 
    改成:
    document.getElementById ('Vedeo').outerHTML=""; 
      

  14.   

    test.html:<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml">
    <head><title>

    </title>
        <link href="/Content/Site.css" rel="stylesheet" type="text/css" />
        <link href="/Content/jdMenu.css" rel="stylesheet" type="text/css" />
        <link href="/Content/jdMenu.slate.css" rel="stylesheet" type="text/css" />
        <link href="/Content/jquery-ui-1.7.2.custom.css" rel="stylesheet" type="text/css" />
      
    <!--[if IE 6]>
        <link href="/Content/Site-ie6.css" rel="stylesheet" type="text/css" />
    <![endif]-->
        </head><body><form action="/Message/OutgoingMessage/StatusEnquiry" method="post" name="frmListStatusEnquiry" onsubmit="Sys.Mvc.AsyncForm.handleSubmit(this, new Sys.UI.DomEvent(event), { insertionMode: Sys.Mvc.InsertionMode.replace, updateTargetId: 'divListStatusEnquiry', onSuccess: Function.createDelegate(this, ListStatusEnquiryReEval) });">
        
    <script   language="VBScript">   
      
      sub   newwin(str)   
          window.open   str,   "newwin","toolbar=no,   scrollbars=yes,location=no,   directories=no,   status=no,   menubar=no,   width=680,   height=480,   top=80,   left=100"   
      end   sub   
     
      </script>   
        
        
        <a   href="#"   onClick=newwin("tanchu.html")>留言板</a>
    </body>
    </html>tanchu.html
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml">
    <head><title>

    </title>
        <link href="/Content/Site.css" rel="stylesheet" type="text/css" />
        <link href="/Content/jdMenu.css" rel="stylesheet" type="text/css" />
        <link href="/Content/jdMenu.slate.css" rel="stylesheet" type="text/css" />
        <link href="/Content/jquery-ui-1.7.2.custom.css" rel="stylesheet" type="text/css" />
      
    <!--[if IE 6]>
        <link href="/Content/Site-ie6.css" rel="stylesheet" type="text/css" />
    <![endif]-->
        
        <script language="javascript">     function doClickAll() {
            alert(1234);
            var result = document.getElementById ('Vedeo').outerHTML;
            alert(result);
            //alert(document.getElementById ('vedeo').outerHTML);
        }    </script>
    </head><body><form action="/Message/OutgoingMessage/StatusEnquiry" method="post" name="frmListStatusEnquiry" onsubmit="Sys.Mvc.AsyncForm.handleSubmit(this, new Sys.UI.DomEvent(event), { insertionMode: Sys.Mvc.InsertionMode.replace, updateTargetId: 'divListStatusEnquiry', onSuccess: Function.createDelegate(this, ListStatusEnquiryReEval) });">
    <div id="divListStatusEnquiry">
        
    <div><object classid="clsid:6BF52A52-394A-11D3-B153-00C04F79FAA6" id="Vedeo" width="464" height="374" name="cats">
                <param name="URL" value="0.swf" />
                <param name="rate" value="1" />
                <param name="autostart" value="-1" />
                <param name="balance" value="0" />
                <param name="currentPosition" value="0" />
                <param name="defaultFrame" value="" />
                <param name="playCount" value="1"/>
                <param name="autoStart" value="-1" />
                <param name="currentMarker" value="0" />
                <param name="invokeURLs" value="-1" />
                <param name="baseURL" value="" />
                <param name="volume" value="50" />
                <param name="mute" value="0" />
                <param name="uiMode" value="full" />
                <param name="stretchToFit" value="0" />
                <param name="windowlessVideo" value="0" />
                <param name="enabled" value="-1" />
                <param name="enableContextMenu" value="1" />
                <param name="fullScreen" value="0" />
                <param name="SAMIStyle" value="" />
                <param name="SAMILang" value="" />
                <param name="SAMIFilename" value=""/>
                <param name="captioningID" value="" />
                <param name="enableErrorDialogs" value="0" />
            </object>
    </div>
        <div class="leftAlign">
     
                    <input type="button" name="chkItemAll" value="button" onclick="doClickAll();" />    </div></body>
    </html>
      

  15.   

    大小写的那个我注意到了,换了一样效果。
    我是用ClientScript.RegisterStartupScript方式弹出的页面,是不是跟这个还有关系
      

  16.   

    同一个页面的function执行,跟该页面是怎么弹出来的,应该没有关系吧,
    貌似超出我的理解范围咯。
      

  17.   

    ClientScript.RegisterStartupScript(this.GetType(), "", "<script language=JavaScript>parent.FlytoMapCZJavaScript('"
                + strUrl + "','"
                + strSTNM + "','"
                + intWidth + "','"
                + intHeight + "','"
                + MessageBoxURL + "','"
                + MessageBoxtype + "','"
                + MessageBoxTrue + "');</script>");
    弹出页面的时候还调用了一个FlytoMapCZJavaScript的方法,用来定位弹出页面的位置