如何在Asp.net按钮上从c#代码后面调用javascript函数

本文关键字:代码 调用 函数 javascript Asp net 按钮 | 更新日期: 2023-09-27 18:29:02

我想从代码后面调用我的facebook发送对话框函数:

javascript代码为:

function facebook_send_message(to) {
    FB.ui({
        app_id:'*****',
        method: 'send',
        name: "*****",
        link: '*****',
       to: <%=to %>,
        description:'sdf sdf sfddsfdd s d  fsf s ',
        redirect_uri: '******'

    });
}

这里的转折点是,我想从动态生成的Aspx按钮中调用它

 Button btn = new Button();
 btn.CssClass = "btn-add";
 btn.Text = "Invite";
 btn.Click += new EventHandler(btn_Click);

我试过点击按钮上的这个代码

protected void btn_Click(object sender,EventArgs e)
{
    Page.ClientScript.RegisterStartupScript(Page.GetType(), "my", "function facebook_send_message(to);", true);
}

但是它不起作用。请帮忙?

如何在Asp.net按钮上从c#代码后面调用javascript函数

将其添加为属性。

btn.attributes.add("OnClientClick", "javaScript: return myfunction(););

如果OnClientClick不起作用,请尝试onClick。我想不起来哪一个会起作用。

确保从JS函数中选择return false以防止Postback

伪代码:

--JS函数——

function myFunction() {
         alert('this is my fb function');
         return false;
}

--在aspx.cs页面中添加按钮--

Button b = new Button();
b.ID = "btnSomeButton";
b.Text = "Call fb button";
dvButton.Controls.Add(b);
b.Attributes.Add("onclick", "return myFunction();");

您不需要像代码中那样的btn_click事件。你也不需要RegisterStartupScript,因为你已经在JS文件中有了你的函数。当您想从服务器端向页面添加JS函数时,会使用RegisterStartupScript