Window.externalの用途は何ですか?これは、JavaScriptからC#/ VB.NET(ASP.NET)のサーバー側の関数/メソッドを呼び出すために使用されますか?正しい方向に向けてもらえますか?
ありがとう
エラー:
<%@ Page Language="vb" AutoEventWireup="false" CodeBehind="WebForm1.aspx.vb" Inherits="WebApplication1.WebForm1" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
<title></title>
</head>
<body>
<form id="form1" runat="server">
<div>
<input type="button" name="button1" value="Click" onclick="javascript:window.external.SayHello('Mike');" />
</div>
</form>
</body>
</html>
Public Class WebForm1
Inherits System.Web.UI.Page
Public Sub SayHello(ByVal name As String)
Response.Write("Hello :- " & name)
End Sub
End Class
これは主にこれから取られます MSDN記事 しかしwindow.external
を使用すると、WebBrowserControl
がクライアントのWindowsフォームアプリケーションのパブリックメソッドを実行できるようになります。
たとえば、フォームに次のような関数があるとします。
public void HelloFromTheForm()
{
MessageBox.Show("Hi client, thanks for calling me!");
}
WebBrowserControl
に読み込まれたhtmlには、次のようなボタンがあります。
<button onclick="window.external.HelloFromTheForm()">
Say hi to the form
</button>
したがって、「これはサーバー側の関数を呼び出すために使用されますか?」という質問に関して、フォームは「サーバー側」ではありませんが、埋め込まれたWebページからフォームのC#/ VB.NETコードを呼び出すことができます。
これは、ブラウザ内で実行されているjavascriptと、ユーザーのデバイスまたはマシン上のブラウザの「外部」で実行されているコードとの間の通信を促進するために、一部のブラウザ/オペレーティングシステムベンダーによって利用されている規約です。
たとえば、AndroidまたはWebブラウザーコントロールをホストするWindows Phoneのネイティブアプリケーションを作成した場合、周囲のネイティブモバイルフレームワークは、java.scriptをアプリのネイティブコード機能を呼び出すためのWebコントロール内のWebページ(Androidのそのような方法の例はここにあります: Java-Android )
一方、ユーザーのWebブラウザーで実行されているJavaScriptとサーバーで実行されているC#コードの間の通信を検討している場合は、AJAXスタイルの呼び出しを調査する必要があります。 (通常はwindow.externalとはほとんど関係ありません。)そのような設定の例はASP.Netサイトにあります。例 http://www.asp.net/web-forms/tutorials/aspnet-ajax/understanding-asp-net-ajax-web-services