21

What is the use of window.external? Is this used to call the server side functions / methods in C# / VB.NET (ASP.NET) from JavaScript? Can you please point me in right direction?

Code:

<%@ 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
4

2 に答える 2

35

これは主にこのMSDNの記事から引用したものですが、クライアントのWindowsフォームアプリケーションのパブリックメソッドを実行 window.externalできるようにするために使用できます。WebBrowserControl

たとえば、フォームには次のような関数があります。

public void HelloFromTheForm()
{
    MessageBox.Show("Hi client, thanks for calling me!");
}

そして、あなたにロードされたhtmlにはWebBrowserControl、次のようなボタンがあるかもしれません。

<button onclick="window.external.HelloFromTheForm()">
    Say hi to the form
</button>

したがって、「これはサーバー側の関数を呼び出すために使用されますか?」という質問に関しては、フォームは「サーバー側」ではありませんが、埋め込まれたWebページからフォームのC#/VB.NETコードを呼び出すことができます。 。

于 2012-05-22T00:42:38.693 に答える
13

これは、ブラウザ内で実行されているjavascriptと、ユーザーのデバイスまたはマシンでブラウザの「外部」で実行されているコードとの間の通信を容易にするために、一部のブラウザ/オペレーティングシステムベンダーによって利用されている規則です。

たとえば、WebブラウザコントロールをホストするAndroidまたはWindows Phone用のネイティブアプリケーションを作成した場合、周囲のネイティブモバイルフレームワークは、Webコントロール内のWebページで実行されているJavaScriptが呼び出す方法としてwindow.externalを提供する場合があります。アプリのネイティブコード機能に。(Androidでこのようなことを行う方法の例は、ここにあります:javaからのjavascript関数の呼び出しをリッスンします-Android

一方、ユーザーのWebブラウザーで実行されているjavascriptとサーバーで実行されているC#コードの間で通信する場合は、AJAXスタイルの呼び出し(通常はほとんど関係ありません)を調査する必要があります。 window.external)。このような設定の例は、ASP.Netサイトにあります。例:http ://www.asp.net/web-forms/tutorials/aspnet-ajax/understanding-asp-net-ajax-web-services

于 2012-05-22T00:42:59.887 に答える