<%@ Page Language="C#" AutoEventWireup="true" CodeFile="Default.aspx.cs" Inherits="_Default" %><!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 runat="server">
    <title>Untitled Page</title>    <script type="text/javascript">
        function UploadClick() {       
                    var  i = 1 ;
                    var j;
                    var k;
                    var aCannel;
                    var aIP;
                    aCannel = document.getElementById("ListCannel")
                    aIP = document.getElementById("ListIP")
                    var ds0 = aCannel[0].value;
                    var dm0 = aIP[0].value;
                    var ds1 = aCannel[1].value;
                    var dm1 = aIP[1].value;
                    var ds2 = aCannel[2].value;
                    var dm2 = aIP[2].value;
                    var mm = parseInt(ds0);
                    i=document.getElementById("OBJECT1").Initvideo(ds0, dm0,0);
                    j=document.getElementById("OBJECT2").Initvideo(2, "192.168.3.102",0);
                    k=document.getElementById("OBJECT3").Initvideo(3, "192.168.3.102",0);
                    alert(k) ;
                          }
        function UnloadClick(){
                    var i;
                    var j;
                    var k;
                    i=document.getElementById("OBJECT1").DeInitvideo();
                    j=document.getElementById("OBJECT2").DeInitvideo();
                    k=document.getElementById("OBJECT3").DeInitvideo();
                    alert(k) ;
                          }
         function StartRecordClick() {       
                    var  i;
                    var j;
                    var k;
                    var aCannel;
                    var aIP;
                    aCannel = document.getElementById("ListCannel")
                    var ds0 = aCannel[0].value;
                    var ds1 = aCannel[1].value;
                    var ds2 = aCannel[2].value; 
                    i=document.getElementById("OBJECT1").Videotape(1);
                    j=document.getElementById("OBJECT2").Videotape(2);
                    k=document.getElementById("OBJECT3").Videotape(3);
                    alert(k);
                              }
         function EndRecordClick() {       
                    var  i;
                    var j;
                    var k;
                    var aCannel;
                    var aIP;
                    aCannel = document.getElementById("ListCannel")
                    var ds0 = aCannel[0].value;
                    var ds1 = aCannel[1].value;
                    var ds2 = aCannel[2].value;
                    i=document.getElementById("OBJECT1").DeVideotape(1);
                    j=document.getElementById("OBJECT2").DeVideotape(2);
                    k=document.getElementById("OBJECT3").DeVideotape(3);
                    alert(k);
                              }    </script></head>
<body>
    <form id="form1" runat="server">
    <asp:Button ID="button5" Text="测试" runat="server" />
    <asp:DropDownList ID="ListCannel" runat="server" Width="100px">
    </asp:DropDownList>
    <asp:DropDownList ID="ListIP" runat="server" Width="120px">
    </asp:DropDownList>
    <div>
        <span style="border-right: gray 1px solid; border-top: gray 1px solid; border-left: gray 1px solid;
            border-bottom: gray 1px solid;">
            <object id="OBJECT1" width="400" height="300" classid="CLSID:D3170B47-FEDD-4BC4-AF03-004B5F253EC4">
            </object>
        </span><span style="border-right: gray 1px solid; border-top: gray 1px solid; border-left: gray 1px solid;
            border-bottom: gray 1px solid;">
            <object id="OBJECT2" width="400" height="300" classid="CLSID:D3170B47-FEDD-4BC4-AF03-004B5F253EC4">
            </object>
        </span><span style="border-right: gray 1px solid; border-top: gray 1px solid; border-left: gray 1px solid;
            border-bottom: gray 1px solid;">
            <object id="OBJECT3" width="400" height="300" classid="CLSID:D3170B47-FEDD-4BC4-AF03-004B5F253EC4">
            </object>
        </span>
    </div>
    &nbsp;</form>
    <p>
        <input id="Button1" type="button" value="开启视频" onclick="UploadClick()" /></p>
    <p>
        <input id="Button2" type="button" value="关闭视频" onclick="UnloadClick()" /></p>
    <p>
        <input id="Button3" type="button" value="开始录像" onclick="StartRecordClick()" /></p>
    <p>
        <input id="Button4" type="button" value="结束录像" onclick="EndRecordClick()" /></p>
</body>
</html>
using System;
using System.Configuration;
using System.Data;
using System.Linq;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.HtmlControls;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Xml.Linq;
using System.Collections;
using System.Collections.Generic;public partial class _Default : System.Web.UI.Page 
{
    protected void Page_Load(object sender, EventArgs e)
    {
        if (!IsPostBack)
        {
            //Util.Util.alertMsg("123");
            //List<string> dinosaurs2 = new List<string>();
            List<int> dinosaurs1 = new List<int>();
            dinosaurs1.Add(1);
            dinosaurs1.Add(2);
            dinosaurs1.Add(3);
            //dinosaurs2.Add("192.168.3.111");
            //dinosaurs2.Add("192.168.3.111");
            //dinosaurs2.Add("192.168.3.111");
            ListCannel.DataSource = dinosaurs1;
            //ListIP.DataSource = dinosaurs2;
            ListCannel.DataBind();
            //ListIP.DataBind();
            //ListCannel.Items.Add(1);
            //ListCannel.Items.Add(2);
            //ListCannel.Items.Add(3);
            ListIP.Items.Add("192.168.3.111");
            ListIP.Items.Add("192.168.3.111");
            ListIP.Items.Add("192.168.3.111");
            ////this.button5.Attributes.Add("OnClick", "javascript:UploadClick(" + dinosaurs1 + ", " + dinosaurs2 + ")");
            ////this.button5.Attributes.Add("OnClick", "javascript:UploadClick('aa')");
            //this.button5.Attributes.Add("OnClick", "javascript:UploadClick(" + dinosaurs1 + ")");
            Page.ClientScript.RegisterClientScriptBlock(this.GetType(), "javascript", "UploadClick();", true); 
    
        }
    }} Page.ClientScript.RegisterClientScriptBlock(this.GetType(), "javascript", "UploadClick();", true); 
这样一句话调用前台JS的时候,是成功的,但是运行到JS里面的时候调用
i=document.getElementById("OBJECT1").Initvideo(ds0, dm0,0);这句话的时候就出错了。
但是通过    <p>
        <input id="Button1" type="button" value="开启视频" onclick="UploadClick()" /></p>
这样调用JS就没有问题。想请教一下,应该怎么处理这个问题。
希望路过的,看过的人能帮忙顶一下,很急。在线等待。

解决方案 »

  1.   

    Page.ClientScript.RegisterClientScriptBlock用那个RegisterClientStartup那个方法
      

  2.   

    跟下document.getElementById("OBJECT1")有没有获取到对象
      

  3.   

    Page.ClientScript.RegisterClientScriptBlock(this.GetType(), "javascript", "UploadClick();", true); 
    ====》》》》》Page.ClientScript.RegisterStartupScript(this.GetType(), Page.ClientScript.RegisterClientScriptBlock(this.GetType(), "javascript", "UploadClick();", true);
      

  4.   

    用Page.ClientScript.RegisterStartupScript
    它和Page.ClientScript.RegisterClientScriptBlock区别 
    RegisterStartupScript 注册的脚本在</form>之上
    RegisterClientScriptBlock注册的脚本在<from> 之后也就是RegisterClientScriptBlock注册的脚本要比RegisterStartupScript 注册的更早执行你用RegisterClientScriptBlock注册在执行中还没有加载《object id="OBJECT3" width="400" height="300" classid="CLSID:D3170B47-FEDD-4BC4-AF03-004B5F253EC4">
                </object>
      

  5.   

    Page.ClientScript.RegisterClientScriptBlock将脚本注册到body首部,此时OBJECT1还没创建Page.ClientScript.RegisterStartupScript将脚本注册到body尾部,此时OBJECT1已经创建
      

  6.   

    检查activex控件方法
    <object id="ctl" classid="clsid:A2B80A6E-42FA-4730-AEB2-B1FB38D2C8D1" width="100" height="50">
    </object>
    <script language="javascript">
    document.getElementById("ctl").函数名();
      

  7.   

    我是用的RegisterClientStartup这个方法,没有用RegisterClientScriptBlock.
    RegisterClientStartup是把脚本放在了ASP.NET页面的底部
    RegisterClientScriptBlock是把脚本放在页面的顶部
    我是尝试了这几种方法。
      

  8.   

    写成这样就可以了么?我尝试一下。
    不好意思,楼上的几位,我原来用的是RegisterStartupScript没有成功。这边贴代码的时候没注意。
    请帮忙看下是不是其他问题
      

  9.   

    Page.ClientScript.RegisterStartupScript(this.GetType(), "javascript", "UploadClick();", true);
      

  10.   

    原先就是用的这中方法,也是不对的。
    在调用i=document.getElementById("OBJECT1").Initvideo(ds0, dm0,0);到这边的时候,程序出错了
    具体错误没弹出来,自动关闭了IE浏览器。
      

  11.   

    这个方法是没有错误的,我觉得。应为我用
     <input id="Button1" type="button" value="开启视频" onclick="UploadClick()" /></p>
    调用的时候一点问题都没有
      

  12.   

    这个方法是没有错误的,我觉得。应为我用
     <input id="Button1" type="button" value="开启视频" onclick="UploadClick()" /></p>
    调用的时候一点问题都没有
      

  13.   

    应该是这个aCannel = document.getElementById("ListCannel")
    为空的原因 
      

  14.   

    我单步调试过,是有值的,不为空。
    我觉得是我调用JS的方法有问题。
    Page.ClientScript.RegisterStartupScript(this.GetType(), "javascript", "UploadClick();", true);
    就是这样一种调用方法有问题。
    因为我用<p>
      <input id="Button1" type="button" value="开启视频" onclick="UploadClick()" /></p>
    调用的时候完全正常
      

  15.   

    我断点了。就是在i=document.getElementById("OBJECT1").Initvideo(ds0, dm0,0);
    这句话的时候出错了,没弹出错误,IE自动关闭了。因此我把这句话屏蔽。我又试了j=document.getElementById("OBJECT2").Initvideo(2, "192.168.3.102",0);这句话,还是一样的问题。
      

  16.   

    function UnloadClick()  两个这个函数,是不是这个有问题呢?
      

  17.   

    上面错了。
    Page.ClientScript.RegisterStartupScript(typeof(Page), "", "<script>UploadClick();</script>");
      

  18.   

    我试了你这个方法,在单步调试到
     i=document.getElementById("OBJECT1").Initvideo(ds0, dm0,0);
    这句话之后,还是报错了。没看见什么错误。IE关闭了。
      

  19.   

    错误:Microsoft JScript 运行时错误: 对象不支持此属性或方法并不是获取不到对象
      

  20.   

    我不是这个错误。
    <object id="OBJECT1" width="400" height="300" classid="CLSID:D3170B47-FEDD-4BC4-AF03-004B5F253EC4">
                </object>
    这个控件时我用VC编写的ocx控件。
      

  21.   

    我没的这控件,我也找不能真正错误! function UploadClick() {       
                        var  i = 1 ;
                        var j;
                        var k;
                        var aCannel;
                        var aIP;
                        aCannel = document.getElementById("ListCannel")
                        aIP = document.getElementById("ListIP")
                        var ds0 = aCannel[0].value;
                        var dm0 = aIP[0].value;
                        var ds1 = aCannel[1].value;
                        var dm1 = aIP[1].value;
                        var ds2 = aCannel[2].value;
                        var dm2 = aIP[2].value;
                        var mm = parseInt(ds0);
                        i=document.getElementById("OBJECT1")//.Initvideo(ds0, dm0,0);
                        j=document.getElementById("OBJECT2")//.Initvideo(2, "192.168.3.102",0);
                        k=document.getElementById("OBJECT3")//.Initvideo(3, "192.168.3.102",0);
                        alert(k) ;
                              }
    我把调用后面的那个方法注释就把k给弹出来了!
      

  22.   

    难道是我方法里面写得有问题?
    可以加我QQ么?69490741
    可是我用   <p>
            <input id="Button1" type="button" value="开启视频" onclick="UploadClick()" /></p>
    这种方法调用的时候,一点问题都没有
      

  23.   


    Page.ClientScript.RegisterStartupScript(typeof(Page), "", "<script>setTimeout("UploadClick()", 2000);</script>");
    你改成这个试下!
      

  24.   


    Page.ClientScript.RegisterStartupScript(typeof(Page), "", "<script>setTimeout(\"UploadClick()\", 2000);</script>");
      

  25.   

    我注释了。是可以执行的。但是在执行到alert(k);之后
    有错误弹出,好像是VC的错误提示。然后就关闭IE了。
    有MSN么?[email protected]