背景:我有一个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:按钮(页面加载后很久)。我可以单击按钮并运行代码隐藏功能(当它没有隐藏时)。
答案 0 :(得分:1)
像这样使用:
document.getElementById('<%= videoEndedButton.ClientID %>').click();
,因为 asp 服务器方ID 需要转换客户端方ID。
答案 1 :(得分:0)
对于你的asp:Button你需要添加属性ClientIDMode =&#34; Static&#34;