我试图从代码隐藏中调用Javascript,但形成某些原因它无法正常工作。让我解释一下我要完成的任务:当页面加载时,系统需要检查这是否是用户第一次访问此页面。如果是这样,灯箱将打开。所以我在页面中创建了一个javascript函数onPageLoad我想调用这个函数,如果它是必要的。这是我到目前为止,看起来非常直接,但它不起作用。我将不胜感激。
这是
HTML:
<form id="form1" runat="server">
<div>
<a id="OpenTutorial" href="../lightwindow/step1.html" params="lightwindow_width=450,lightwindow_height=470" class="lightwindow page-options">Open Tutorial</a>
</div>
<script>
function OpenTutorial() { $("#OpenTutorial").click() }
</script>
</form>
代码背后:
protected void Page_Load(object sender, EventArgs e)
{
//code to check if this is the first time
.....
// it this is the first time, call this function
Page.ClientScript.RegisterStartupScript(this.GetType(), "CallMyFunction", "OpenTutorial()", true);
}
答案 0 :(得分:1)
更改函数的id或名称,使它们不同,它们在全局名称空间中发生冲突。
<a id="anc_OpenTutorial" />
<script>
function OpenTutorial() { $("#anc_OpenTutorial").click() }
</script>
或者只是调用单击代码链接而不是调用该函数。
要按照链接更改它以访问DOM元素
$("#anc_OpenTutorial")[0].click()
或
$("#anc_OpenTutorial").get(0).click()
答案 1 :(得分:1)
也许尝试使用jQuery的触发器功能,即:
function OpenTutorial() { $("#OpenTutorial").trigger('click'); }
答案 2 :(得分:1)
如何重构你的javascript函数如下?
<form id="form1" runat="server">
<div>
<a id="OpenTutorial" href="../lightwindow/step1.html" params="lightwindow_width=450,lightwindow_height=470" class="lightwindow page-options">Open Tutorial</a>
</div>
<script>
// Function that Opens the Tutorial
function OpenTutorial() {
// Using colorbox for an example, but you can start the lightbox through the function
$('#OpenTutorial').colorbox();
}
$("#OpenTutorial").click(function(){ OpenTutorial() });
</script>
</form>
代码背后:
protected void Page_Load(object sender, EventArgs e)
{
//code to check if this is the first time
.....
// it this is the first time, call this function
Page.ClientScript.RegisterStartupScript(this.GetType(), "CallMyFunction", "OpenTutorial()", true);
}
编辑:更新OpenTutorial功能以启动灯箱而不是打开链接