我想从后面的代码中调用我的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);
}
然而它不起作用请帮忙?
答案 0 :(得分:6)
将其添加为属性。
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
。