我有一个带有 div 的 asp.net 应用程序,它触发一个弹出窗口(单击时)。如果代码背后的代码发生问题,我需要弹出窗口。
我想我可以向我的页面发送一个 javascript 代码块来单击 div,但我似乎无法让它工作。这是弹出插件的 jQuery:
$(function () {
$('.c_popup').modalPopLite(
{ openButton: '#div_trigger',
closeButton: '#close-btn'
});
});
一个简单的 div 触发它(通过单击 div):
<div id="div_trigger">Trigger</div>
我可以通过页面上的按钮从 javascript 中单击 div:
<input type="button" id="btn_show_error" value="Popup"
onclick="document.getElementById('div_trigger').click();" />
这样可行。但是,当我尝试从后面的代码中准确地将该 javascript 块发送到页面时,如下所示:
ClientScript.RegisterStartupScript(Page.GetType(), "error_click",
"<script>document.getElementById('div_trigger').click();</script>")
什么都没发生。我通过更改为一个简单的警报框来测试我的代码:
ClientScript.RegisterStartupScript(Page.GetType(), "error_click",
"<script>alert('Hello World');</script>")
这很好用。因此,我可以看到 javascript 正在从我的代码后面到达页面,并且当它来自页面本身的按钮时,相同的 javascript 块可以执行我想要的操作,但是来自后面的代码它不起作用。
任何想法,将不胜感激。我真的被困住了。
编辑:两个海报回应说我在绑定弹出控件之前发布了我的javascript。我不确定如何解决这个问题,即使我得到了帮助。我尝试在我的页眉块中创建这个函数:
function TriggerDiv() {
$(document).ready(function () {
alert('success'); //alert just to check if the function is firing
document.getElementById('div_trigger').click();
});
}
并从我后面的代码中调用它,如下所示:
ClientScript.RegisterStartupScript(Page.GetType(), "error_click",
"<script>TriggerDiv();</script>")
警报会触发,但点击事件不会 - 我认为我仍然没有按正确的顺序做事。任何进一步的帮助将不胜感激。