2012-05-22 54 views
15

Việc sử dụng window.external là gì? Điều này được sử dụng để gọi các hàm/phương thức phía máy chủ trong C#/VB.NET (ASP.NET) từ JavaScript? Bạn có thể vui lòng chỉ cho tôi đi đúng hướng không?Việc sử dụng window.external là gì?

Cảm ơn

Lỗi:

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

Trả lời

27

này phần lớn được lấy từ MSDN article này nhưng window.external thể được sử dụng để cho phép bạn thực hiện các phương pháp WebBrowserControl để công cộng của khách hàng của bạn ứng dụng Windows Forms.

Ví dụ trong hình thức của bạn, bạn có thể có một chức năng như:

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

Và trong html nạp vào bạn WebBrowserControl bạn có thể có một nút trông giống như:

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

Vì vậy, trong liên quan đến câu hỏi của bạn là 'Cái này được sử dụng để gọi các hàm phía máy chủ?', biểu mẫu của bạn không phải là 'phía máy chủ' nhưng nó cho phép bạn gọi mã C#/VB.NET của biểu mẫu của bạn từ một trang web được nhúng.

+0

<% @ Page Ngôn ngữ = "vb" AutoEventWireup = "false" CodeBehind = "WebForm1.aspx.vb" Inherits = "WebApplication1.WebForm1"%>

user1054625

+0

Công Lớp WebForm1.class Inherits System.Web.UI.Page Protected Sub SayHello (tên ByVal Dưới dạng chuỗi) Response.Write ("Xin chào: -" & tên) End Sub End Class – user1054625

+0

Gặp lỗi. Bạn có thể vui lòng cho tôi biết tại sao không? – user1054625

11

Đây là quy ước được một số nhà cung cấp trình duyệt/hệ điều hành sử dụng để tạo điều kiện giao tiếp giữa javascript chạy trong trình duyệt và mã chạy "bên ngoài" của trình duyệt trên thiết bị hoặc máy người dùng. Ví dụ: nếu bạn đã viết một ứng dụng gốc cho Android hoặc Windows Phone lưu trữ một điều khiển trình duyệt web, khung di động gốc xung quanh có thể cung cấp window.external như một cách để javascript chạy trên trang web trong trang web kiểm soát để gọi ra chức năng mã nguồn gốc của ứng dụng. (Ví dụ về cách thực hiện những điều như vậy đối với Android tại đây: Listen to javascript function invocation from java - Android)

Nếu, mặt khác, bạn đang tìm cách liên lạc giữa javascript đang chạy trên trình duyệt web của người dùng và mã C# đang chạy trên máy chủ của bạn sau đó bạn sẽ muốn điều tra các cuộc gọi kiểu AJAX (thường có rất ít việc phải làm với window.external). Ví dụ về thiết lập những điều như vậy có thể được tìm thấy tại trang web ASP.Net. ví dụ: http://www.asp.net/web-forms/tutorials/aspnet-ajax/understanding-asp-net-ajax-web-services

Các vấn đề liên quan