javascript與asp.net(c#)互相調用方法
2024-05-06 14:12:23
供稿:網友
1、獲得aspx客戶端請求地址:
代碼如下:
<a src= 'http://<%=Request.Url.Host %><%= ResolveUrl("../PayCenter/AlipayAdd.aspx")%>'>地址</a>
2、C#調用客戶端方法:(top.window.document:表父窗體,如果是MainFrame對象在本窗體中,則不加top.window.document)
Js中的方法:
代碼如下:
function navurl(url) {
$("#mainFrame",top.window.document).attr("src", url);
}
C#調用:
代碼如下:
string navUrl = "javascript:navurl('" + "http://" + Request.Url.Host + ResolveUrl("../Document/callIndex.aspx?FolderId=");
DocName.NavigateUrl = navUrl + txtDocId.Value.Trim() + "')";
3. C#調用客戶端方法:
代碼如下:
page.ClientScript.RegisterStartupScript(page.GetType(), "message", "<script language='javascript'>alert('" + msg.ToString() + "');</script>");
下面要解決的問題如下:
1.如何在JavaScript訪問C#函數?
2.如何在JavaScript訪問C#變量?
3.如何在C#中訪問JavaScript的已有變量?
4.如何在C#中訪問JavaScript函數?
問題1答案如下:
javaScript函數中執行C#代碼中的函數:
方法一:
1、首先建立一個按鈕,在后臺將調用或處理的內容寫入button_click中;
2、在前臺寫一個js函數,內容為document.getElementById("btn1").click();
3、在前臺或后臺調用js函數,激發click事件,等于訪問后臺c#函數;
方法二:
1、函數聲明為public
后臺代碼(把public改成protected也可以)
public string ss()
{
return("a");
}
2、在 html 里用可以調用前臺腳本
<script language=javascript>
var a = "<%=ss()%>";
alert(a);
</script>
方法三:
<script language="javascript">
<!--
function __doPostBack(eventTarget, eventArgument)
{
var theForm = document.Form1; //指runat=server的form
theForm.__EVENTTARGET.value = eventTarget;
theFrom.__EVENTARGUMENT.value = eventArgument;
theForm.submit();
}
-->
</script>
<input id="Button1" type="button" name="Button1" value="按鈕" onclick="javascript:__doPostBack('Button1','')">
方法四:
<script language="javascript">
function SubmitKeyClick()
{
if (event.keyCode == 13)
{
event.cancelBubble = true;
event.returnValue = false;
document.all.FunName.value="你要調用的函數名";
document.form[0].submit();
}
}
</script>
<INPUT onkeypress="SubmitKeyClick()" id="aaa" type="text">
<input type="hidden" name="FunName"> 〈!--用來存儲你要調用的函數 --〉