2015-01-05 2 views
1

ASP.Net Ajax에 응용 프로그램이 있습니다. winform에서 browsercontrol을 통해이를 열고 싶습니다. 사용자가 webform에 로그인 할 때 사용한 변수 (사용자 이름)에 액세스하려고합니다. 로드 할 때 해당 사용자 이름을 읽고 그 사용자 이름을 사용하여 해당 브라우저 컨트롤에서 나머지 웹 페이지 코드를 수행하고 싶습니다.browsercontrol에서 winform 변수에 액세스하십시오.

내 ASP.Net Ajax가 내부 웹 서버에 게시되었으며 browsercontrol이 해당 IP 주소를로드합니다.

이것을 달성 할 방법이 있습니까?

편집 : 나는 자바 스크립트 확장을 발견했다

: window.external 그리고 시작이다 그것으로 자바 스크립트를 사용하여 웹 페이지에서 C#을 프로 시저를 호출 할 수 있지만, 나는 C#을에서 가변적이고을 검색해야 - 여기가 문제가되는 곳입니다. 시도했습니다.

var name = function window.external.GetGlobalVariable(MyGlobalProcedure, "Cannot Get Value"); 

javascript 오류는 메서드를 개체에 적용 할 수 없다고 말합니다.

답변

1

는 다음과 같이 대답은해야합니다 :로 보일 것입니다

Public Class Form1 

    Dim GlobalVar As String = "Your Name" 
    Dim YourBrowser As New WebBrowser 

    Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load 
    YourBrowser.Url = New Uri("Your URL address") 
    AddHandler YourBrowser.DocumentCompleted, AddressOf PageLoadComplete 
    End Sub 

    'The invokescript will only work once the HTML has finished loading itself into your WebBrowser 
    Sub PageLoadComplete() 
    'Must declare the string inside an array as the invokescript only allows an object to be sent 
    Dim VarToSend As String() = {GlobalVar} 
    YourBrowser.Document.InvokeScript("yourJavascriptfunction", VarToSend) 
    End Sub 

자바 스크립트 부분은 다음과 같습니다

<script type="text/javascript" language="javascript">   
    function userNameSet(name) {         
     $(document).ready(function() { 
      //variable now exists inside your WebBrowser client and can be used accordingly now 
      alert(name); 
     }); 
    } 
    </script>  

답변에 대한 참고 : 나는 질문을 편집 한 http://www.dotnetcurry.com/showarticle.aspx?ID=194

+0

그게 제가 찾고 있던 답변입니다! – Killua

0

"세션 변수에 그 이름을 저장하고 아약스 호출에서 세션에 액세스"당신의 ASP.Net 응용 프로그램에서

+0

- 액세스 할 필요를 창문은 웹 폼이 아닌 asp에서 양식합니다. – Killua

0

숨겨진 필드를 만들 (또는 그것은 또한 작동 일부 컨트롤의 UI 어딘가에 인 경우) . 공유하려는 사용자 이름이나 정보를 해당 필드에 입력하십시오.

당신의 윈폼에서

프로그램이 같은 웹 브라우저 컨트롤을 통해 해당 필드를 요청할 수 있습니다

MessageBox.Show(WebBrowser1.Document.GetElementById("txtUsername").GetAttribute("value")) 

은 위의 사용자가 설정 한 값 속성으로 txtUsername라는 일부 HTML 요소가 가정합니다.

+0

실제로 다른 방법이 필요합니다 ... 웹 응용 프로그램 내부에서 변수에 액세스해야합니다. 그쪽에 브라우저 컨트롤이있는 VB 창문이 있습니다. – Killua

관련 문제