后台.cs调用前台JS的问题

t69490741 2010-05-10 01:17:42

<%@ 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>
 </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就没有问题。想请教一下,应该怎么处理这个问题。
希望路过的,看过的人能帮忙顶一下,很急。在线等待。
...全文
851 45 打赏 收藏 转发到动态 举报
写回复
用AI写文章
45 条回复
切换为时间正序
请发表友善的回复…
发表回复
漆黑的小白 2012-11-05
  • 打赏
  • 举报
回复
学习···最近正好碰到类似的问题
ITgodd 2012-09-17
  • 打赏
  • 举报
回复
为什么我的还是不行啊
ymy89757 2011-05-12
  • 打赏
  • 举报
回复
我来学习一下,开发过程中遇到这个难题了.
正头疼呢!
yangquanlaohou 2010-09-11
  • 打赏
  • 举报
回复
后台获取JS代码
wo554006164 2010-05-14
  • 打赏
  • 举报
回复
上面错了。


Page.ClientScript.RegisterStartupScript(typeof(Page), "", "<script>UploadClick();</script>");
wo554006164 2010-05-14
  • 打赏
  • 举报
回复
function UnloadClick() 两个这个函数,是不是这个有问题呢?
wanghuaide 2010-05-14
  • 打赏
  • 举报
回复
后台获取JS代码一起不会
wanghuaide 2010-05-14
  • 打赏
  • 举报
回复
学习了
antony1029 2010-05-14
  • 打赏
  • 举报
回复
setTimeout 学习。
wo554006164 2010-05-14
  • 打赏
  • 举报
回复
[Quote=引用 37 楼 t69490741 的回复:]
引用 36 楼 wo554006164 的回复:
引用 34 楼 t69490741 的回复:
引用 32 楼 wo554006164 的回复:
C# code

Page.ClientScript.RegisterStartupScript(typeof(Page), "", "<script>setTimeout(\"UploadClick()\", 2000);</script>"……
[/Quote]
我是个菜鸟,有问题大家一起探讨!一起学习!~
t69490741 2010-05-14
  • 打赏
  • 举报
回复
[Quote=引用 36 楼 wo554006164 的回复:]
引用 34 楼 t69490741 的回复:
引用 32 楼 wo554006164 的回复:
C# code

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

用你这句话就成功了,太厉害了。你这句话是……
[/Quote]
谢谢。我试了下,好像可以了。
如果再有问题希望还能请教你。谢谢了
wo554006164 2010-05-14
  • 打赏
  • 举报
回复
[Quote=引用 34 楼 t69490741 的回复:]
引用 32 楼 wo554006164 的回复:
C# code

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

用你这句话就成功了,太厉害了。你这句话是不是延迟了2秒钟。这是为什么呢。为什么要延迟两秒……
[/Quote]
因为你一来就调用,页面的元素还没加载完,导致获取不到对象。延迟2秒后,页面已经加载完了。这时就能获取到了
辰爸 2010-05-14
  • 打赏
  • 举报
回复
路过,学习下!~~~~~~~~
t69490741 2010-05-14
  • 打赏
  • 举报
回复
[Quote=引用 32 楼 wo554006164 的回复:]
C# code

Page.ClientScript.RegisterStartupScript(typeof(Page), "", "<script>setTimeout(\"UploadClick()\", 2000);</script>");
[/Quote]
用你这句话就成功了,太厉害了。你这句话是不是延迟了2秒钟。这是为什么呢。为什么要延迟两秒
t69490741 2010-05-14
  • 打赏
  • 举报
回复
[Quote=引用 30 楼 wo554006164 的回复:]
我在公司不能登QQ。
你把后面那个方法注释了试下。
[/Quote]
我注释了。是可以执行的。但是在执行到alert(k);之后
有错误弹出,好像是VC的错误提示。然后就关闭IE了。
有MSN么?t69490741@hotmail.com
wo554006164 2010-05-14
  • 打赏
  • 举报
回复

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




wo554006164 2010-05-14
  • 打赏
  • 举报
回复

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


你改成这个试下!
wo554006164 2010-05-14
  • 打赏
  • 举报
回复
我在公司不能登QQ。
你把后面那个方法注释了试下。
t69490741 2010-05-14
  • 打赏
  • 举报
回复
[Quote=引用 28 楼 wo554006164 的回复:]
我没的这控件,我也找不能真正错误!

C# code

function UploadClick() {
var i = 1 ;
var j;
var k;
var aCannel;
……
[/Quote]
难道是我方法里面写得有问题?
可以加我QQ么?69490741
可是我用 <p>
<input id="Button1" type="button" value="开启视频" onclick="UploadClick()" /></p>
这种方法调用的时候,一点问题都没有
wo554006164 2010-05-14
  • 打赏
  • 举报
回复
我没的这控件,我也找不能真正错误!

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给弹出来了!
加载更多回复(25)

62,047

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

试试用AI创作助手写篇文章吧