WebBrowser 컨트롤을 사용하여 ASP.Net MVC 응용 프로그램을 호스팅하는 WPF usercontrol이 있습니다.웹 브라우저 컨트롤에서 WPF 응용 프로그램을 호스팅하는 이벤트 트리거
WebApplication에서 특정 작업이 수행 될 때 usercontrol에 알리고 싶습니다. 이것을 수행 할 수있는 방법은 무엇입니까?
WebBrowser 컨트롤을 사용하여 ASP.Net MVC 응용 프로그램을 호스팅하는 WPF usercontrol이 있습니다.웹 브라우저 컨트롤에서 WPF 응용 프로그램을 호스팅하는 이벤트 트리거
WebApplication에서 특정 작업이 수행 될 때 usercontrol에 알리고 싶습니다. 이것을 수행 할 수있는 방법은 무엇입니까?
@Szabolcs Dézsi가 웹 응용 프로그램에 액세스 할 수 있다면 주석에 언급 한대로 WebBrowser.ObjectForScripting
을 개체의 인스턴스에 사용하고 javascript에서 해당 메서드를 호출 할 수 있습니다. 우리가 WebBrowser
컨트롤에 표시이 간단한 HTML 페이지를
webBrowser.ObjectForScripting = new Demo();
과 말 :
[ComVisible(true)] // Class must be ComVisible
public class Demo
{
public void SayHello(string name) => MessageBox.Show($"Hello {name} !!!");
}
이 클래스의 인스턴스를 만듭니다 WebBrowser 컨트롤의 ObjectForScripting
속성에 할당 : 다음은 간단한 데모입니다 :
<html>
<head>
<title></title>
<script>
function sayhello()
{
var name = document.getElementById('name').value;
// the window.external is assigned an instance of
// class we created above.
// We can call C# instance method SayHello directly.
window.external.SayHello(name);
}
</script>
</head>
<body>
<form action="#" method="post">
<input id="name" type="text" name="name" value="" />
<input type="submit" name="submit" value="Say Hello" onclick="sayhello()" />
</form>
</body>
</html>
이제 이름을 입력하고 SayHello 버튼을 클릭하면 예상대로 MessageBox가 표시됩니다.
또한 당신은 마이크로 소프트 HTML 개체 라이브러리 (MSHTML) 컴 도서관에 살고
HtmlDocument
의 인스턴스, 프로젝트에 참조해야합니다 재산
WebBrowser.Document
있습니다.
Document 속성을 사용하면 현재 페이지의 DOM 개체를 쿼리 할 수 있으며 HtmlDocument.getElementById()
등의 클래스와 HtmlDocument
클래스가 노출 된 메서드를 통해 javascript와 같은 HTML 페이지를 조작 할 수 있습니다. 이것은 당신이 WebBrowser
제어로드 페이지를 조작하기 위해 제공하는 힘을 이해하는 데 도움
webBrowser.LoadCompleted += new LoadCompletedEventHandler((o, e) =>
{
if (webBrowser.Document is HTMLDocument DOM)
{
var namefield = DOM.getElementById("name");
namefield.setAttribute("value", "Enter your name!!!");
}
});
희망 :이 코드는 페이지 후 HTML 페이지 위의 이름을 입력 값 특성을 수정 예를 들어
는 WebBrowser 컨트롤에 의해로드됩니다 .아주 좋은 설명입니다. 같은 시도와 매력처럼 작동합니다! 고맙습니다! – user2143645
ASP.NET 응용 프로그램을 수정할 수 있습니까? 그렇다면 브라우저 컨트롤의'ObjectForScripting' 속성을 자바 스크립트에서'window.external'를 통해 사이트에서 호출 할 수있는 클래스의 인스턴스로 설정할 수 있습니다. –