我试图通过按钮点击后面的代码在自己的文件中调用javascript方法。
aspx文件
protected void Next_Click(object sender, EventArgs e)
{
if (hidden.Value == "")
{
Response.Write(@"<script language='javascript'>drawImage();</script>");
}
}
js file
function drawImage() {
context.drawImage(video, 0, 0, 320, 240);
var imgBase = canvas.toDataURL('image/jpeg');
document.getElementById("hidden").value = imgBase;
}
问题是这不会调用绘图图像方法,我怀疑它是因为js文件是它自己的文件,但我不确定。
非常感谢您给予的任何帮助。
答案 0 :(得分:1)
请参阅http://msdn.microsoft.com/de-de/library/z9h4dk8y.aspx
试试这个
string jquery = "drawImage();"
ClientScript.RegisterStartupScript(typeof(Page), "a key",
"<script type=\"text/javascript\">"+ jquery +"</script>"
);
答案 1 :(得分:0)
我认为你已经在页面中包含了脚本文件。
如果您需要回发,则需要ClientScriptManager.RegisterStartupScript Method (Type, String, String, Boolean) ..
protected void Next_Click(object sender, EventArgs e)
{
if (hidden.Value == "")
{
ClientScriptManager cs = Page.ClientScript;
cs.RegisterStartupScript(this.GetType(), 'startupScript', 'drawImage();', true);
}
}
您可以从按钮本身调用该功能,而无需回发。
<asp:Button runat="server" ID='next' OnClientClick="return drawImage();" />
并在脚本中
function drawImage() {
if(document.getElementById("hidden").value != undefined || document.getElementById("hidden").value != "")
{
context.drawImage(video, 0, 0, 320, 240);
var imgBase = canvas.toDataURL('image/jpeg');
document.getElementById("hidden").value = imgBase;
return false;
}
}
答案 2 :(得分:0)
1)。如果函数存储在外部文件中(例如MyScript.js
),则应将其包含在网页的<head>
部分中,并将onclick
事件添加到按钮中,如:
ButtonName.Attributes.Add("onclick", {YourFunction});
在Page_Load
事件中。
2)另一种方法是将整个javascript函数分配给字符串变量,然后传递它而不是前缀为javascript:
的{YourFunction}。在这种情况下,您甚至不需要外部文件。
希望它会有所帮助。 我最好的,Alex