Какая польза от window.external?
Какая польза от window.external? Используется ли это для вызова функций/методов на стороне сервера в С#/VB.NET(ASP.NET) из JavaScript? Не могли бы вы указать мне в правильном направлении?
Спасибо
Ошибка:
<%@ 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
Ответы
Ответ 1
В основном это взято из этой статьи MSDN, но window.external
можно использовать, чтобы позволить WebBrowserControl
выполнять общедоступные методы вашего приложения Windows Forms клиента.
Например, в вашей форме у вас может быть функция, например:
public void HelloFromTheForm()
{
MessageBox.Show("Hi client, thanks for calling me!");
}
И в html, загруженном в ваш WebBrowserControl
, у вас может быть кнопка, которая выглядит так:
<button onclick="window.external.HelloFromTheForm()">
Say hi to the form
</button>
Итак, что касается вашего вопроса "Используется ли это для вызова функций на стороне сервера?", ваша форма не "серверная", но она позволяет вам вызывать код С#/VB.NET вашей формы из встроенная веб-страница.
Ответ 2
Это соглашение, используемое некоторыми поставщиками браузера/операционной системы для облегчения связи между javascript, запущенным в браузере, и кодом, запущенным "снаружи" браузера на пользовательском устройстве или машине.
Например, если вы написали собственное приложение для Android или Windows Phone, на котором размещен элемент управления веб-браузером, окружающая собственная мобильная инфраструктура может предоставить window.external как способ работы javascript на веб-странице в веб-элементе управления для вызова собственной функциональности кода вашего приложения.
(Пример того, как такие вещи для Android можно найти здесь: Прослушать вызов функции javascript из java - Android)
Если, с другой стороны, вы хотите установить связь между javascript, запущенным на веб-браузере пользователя, и кодом С#, запущенным на вашем сервере, тогда вам будет нужно исследовать вызовы стиля AJAX (что обычно очень мало делать с window.external).
Примеры создания таких вещей можно найти на сайте ASP.Net.
например http://www.asp.net/web-forms/tutorials/aspnet-ajax/understanding-asp-net-ajax-web-services