加载页面后,document.getElementById(...)为null

时间:2016-02-12 11:04:52

标签: javascript asp.net

背景:我有一个asp.net页面,其中包含视频作为学习资源。当用户完成观看视频时,它会被标记为“已观看”并在SQL数据库中创建一个条目。

方法:我有一些JS可以检测视频何时完成,然后触发一个JS函数,触发隐藏的asp:button的click事件,后者又触发了一个vb.net代码隐藏函数已经观看了一些视觉变化,以显示该部分的视频。

问题:视频播放完毕后,JS函数会触发但无法通过id找到asp:按钮

TypeError: document.getElementById(...) is null

代码:

<asp:button runat="server" ID="videoEndedButton" Text="SubmitVideo" style="display:none;" onclick="videoEndedButton_Click" />

<script type="text/javascript">
    document.getElementById('pdp_video_rta').addEventListener('ended', videoEnded, false);
    function videoEnded(e) {
         document.getElementById("videoEndedButton").click
    }
</script>

为什么JS函数找不到asp:按钮(页面加载后很久)。我可以单击按钮并运行代码隐藏功能(当它没有隐藏时)。

2 个答案:

答案 0 :(得分:1)

像这样使用:

document.getElementById('<%= videoEndedButton.ClientID %>').click();

,因为 asp 服务器方ID  需要转换客户端方ID。

答案 1 :(得分:0)

对于你的asp:Button你需要添加属性ClientIDMode =&#34; Static&#34;