JavaScript总是获取不到Object的Id

Jack_Jia 2010-02-08 02:42:50
ASP.NET页面里有个Object控件,我在里面放了一个视频。页面是个弹出页面,GridView上的多个链接都指向这一个页面,根据传来的不同ID替换Object里的视频路径。这样做有一个问题,就是关闭页面以后,视频的声音还在,于是我想着是不是可以用JavaScript控制一下Object,在页面刷新或者关闭的时候outerHTML一下。但是每次弹出页面以后,刷新或者关闭,都提示无法找到对象,只写一句alert(“ok”)也是一样的效果。页面别的JavaScript语句都执行的没有问题,只是这个有问题,是怎么回事?
...全文
590 28 打赏 收藏 转发到动态 举报
写回复
用AI写文章
28 条回复
切换为时间正序
请发表友善的回复…
发表回复
路伊阑珊 2011-10-27
  • 打赏
  • 举报
回复
看看也能有50分啊 这个算是答案??
lsd123 2010-02-08
  • 打赏
  • 举报
回复
phoeni_xin 2010-02-08
  • 打赏
  • 举报
回复
看看
Jack_Jia 2010-02-08
  • 打赏
  • 举报
回复
ClientScript.RegisterStartupScript(this.GetType(), "", "<script language=JavaScript>parent.FlytoMapCZJavaScript('"
+ strUrl + "','"
+ strSTNM + "','"
+ intWidth + "','"
+ intHeight + "','"
+ MessageBoxURL + "','"
+ MessageBoxtype + "','"
+ MessageBoxTrue + "');</script>");
弹出页面的时候还调用了一个FlytoMapCZJavaScript的方法,用来定位弹出页面的位置
丰云 2010-02-08
  • 打赏
  • 举报
回复
同一个页面的function执行,跟该页面是怎么弹出来的,应该没有关系吧,
貌似超出我的理解范围咯。。。。
Jack_Jia 2010-02-08
  • 打赏
  • 举报
回复
大小写的那个我注意到了,换了一样效果。
我是用ClientScript.RegisterStartupScript方式弹出的页面,是不是跟这个还有关系
丰云 2010-02-08
  • 打赏
  • 举报
回复
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>

丰云 2010-02-08
  • 打赏
  • 举报
回复
我试过咯,弹出页面也是正常的

document.getElementById ('vedeo').outerHTML="";
改成:
document.getElementById ('Vedeo').outerHTML="";
Jack_Jia 2010-02-08
  • 打赏
  • 举报
回复
object和function 在同一页面里,本来想贴页面源码,但是太大超出范围了。
我单独运行页面,直接在URL里传值,得到的效果也是一样的,缺少对象。
加DIV,Table的方法我都试过了,都是一样的效果。
这个问题困扰了我好几天了,实在是郁闷
丰云 2010-02-08
  • 打赏
  • 举报
回复
多半是你的object和function 不在同一个页面里面

或者是弹出页面不能用document.getElementById这种方式?
supersyd 2010-02-08
  • 打赏
  • 举报
回复
你可以在 <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 = "你想要的内容";
xiaoheixiaobai 2010-02-08
  • 打赏
  • 举报
回复
我用过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>
Jack_Jia 2010-02-08
  • 打赏
  • 举报
回复
代码是没什么问题的,我在别的页面试也是可以的,但是在要弹出的页面就出上面的问题
丰云 2010-02-08
  • 打赏
  • 举报
回复
我试过了,是可以的,你注意下书写规范
丰云 2010-02-08
  • 打赏
  • 举报
回复
引用 11 楼 jack_jia 的回复:
<script  type= "text/javascript ">
    function  reset()
                    {
                         
                        document.getElementById ('vedeo').outerHTML="";
                        //alert("ok!");
                    } 
</script>
就这么一句,我在body的onbeforeunload事件里调用了一下,但是总提示缺少对象


document.getElementById ('vedeo').outerHTML="";
注意逗号和大小写
happy664618843 2010-02-08
  • 打赏
  • 举报
回复
Jack_Jia 2010-02-08
  • 打赏
  • 举报
回复
同样的语句换到别的页面都是可以正常执行
Jack_Jia 2010-02-08
  • 打赏
  • 举报
回复
<script type= "text/javascript ">
function reset()
{

document.getElementById ('vedeo').outerHTML="";
//alert("ok!");
}
</script>
就这么一句,我在body的onbeforeunload事件里调用了一下,但是总提示缺少对象
Jack_Jia 2010-02-08
  • 打赏
  • 举报
回复
是我项目里的一个工程介绍的页面,在上一页面上有许多工程编号,点击编号就弹出介绍页面,所有的工程介绍都用的一个页面,只是替换了里面视频,图片的地址。
chenyunkun2008 2010-02-08
  • 打赏
  • 举报
回复
加载更多回复(8)

62,041

社区成员

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

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

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

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