WebBrowser 컨트롤이 있습니다. head 태그에 JavaScript를 추가했는데 경고를 추가하여 예상대로 작동하는 것을 볼 수 있습니다. # 내가 뭐하는 거지C#을 사용하여 JavaScript로 작성된 사용자 정의 객체에서 메서드를 호출하려면 어떻게해야합니까?
function test() {
}
test.prototype.run = function() {
alert('success!')
}
function createTest() {
return new test()
}
을 다시 C의 내부 : 이것이 내가 함수를 만들고과 같이 그것의 프로토 타입 일부 구성원을 추가하고 JS의 내부
dynamic test = this.browser.InvokeScript("createTest");
test.run();
을 나는 테스트 개체는 것을 알 수 있습니다 일부 ComObject하지만 run() 호출 할 때 아무 일도 발생하지 않습니다. 나는 오류가 없지만 아무 일도 일어나지 않는다. 누구든지이 유형의 사용자 정의 객체를 호출하는 방법을 알고 있습니까?
또한 createTest() 메소드를 없애고 싶다면 C#에서 test의 새 인스턴스를 어떻게 만들 수 있습니까?
또한, 보너스 포인트로, 내 C# 코드에 콜백 할 수 있도록이 사용자 지정 개체 ('완전한'멤버)에 이벤트를 연결하는 데 필요한 특별한 것이 있습니까?
왜 내가 이것을해야하는지 모르겠다.하지만 내가 리플렉션을 사용하면 InvokeMember MemberInfo 객체를 가져올 수있다. 그러면 Invoke를 호출 할 수 있고 실제로 js 객체의 멤버를 호출 할 것이다! 나는 왜 동적 인 오브젝트가 이것을 아직하지 않는지 모르지만, 누군가가 더 깨끗한 방법을 먼저 찾을 수 없다면 나는 이것을하기 위해 만든 래퍼 코드를 게시 할 것이다. –