2013-06-21 3 views
1

windows mobile 6.5 professional에 문제가 있습니다. Windows Mobile 6.5 classic에서 실행되는 응용 프로그램을 개발하여 웹 브라우저에서 웹 사이트를 엽니 다. Professional 웹 사이트에서는 IE에서 올바르게 작동하지만 webbrowser로 내 응용 프로그램에서 javascript/jquery를 사용할 수 없습니다. 나는 그것을 발견 이상한 요청 에이전트 전문의 (Request.UserAgent)의 내용 : 모질라/4.0 (MSIE 6.0 호환, 윈도우 CE, IEMobile 7시 11분)Windows Mobile 6.5 Professional

클래식은 다음과 같은 결과가 나타납니다

모질라/4.0 (MSIE 6.0, 윈도우 NT 5.1, 윈도우 폰, 호환 6.5.3.5

+0

에 오신 것을 환영합니다 : 여기에 코드 샘플입니다. 글쎄, 당신은 당신의 제목 줄에 태그 정보를 넣었습니다. 당신은하지 말아야합니다 - 그것은 태그 속에 들어 있습니다. 그리고 질문을 잊어 버린 것처럼 보입니다. :-) 게시물을 편집하고 제목 줄을 좀 더 의미있는 것으로 바꿀 수 있으며 문제를 명확히하고 대답 할 수있는 질문을 할 수 있습니까? 감사. –

+0

@RafaelTriani 정확하게 작동하지 않는 것은 무엇입니까? 그 코드라면 코드가 필요합니다. –

+0

@Ramhound 웹 브라우저로 내 응용 프로그램을 실행할 때 웹 사이트에서 javascript/jquery를 실행하지 마십시오. –

답변

6

나는 최근에 같은 문제에 발견. 자바 스크립트 내 C#의 웹 브라우저 구성 요소에서 IE에서 작동하지만.

해결 방법은 HKLM \ Security \ Internet Explorer \ MSHTML 레지스트리 키를 확인하는 것이 었습니다. java를 허용하려면 0이어야합니다. webbrowser 내의 스크립트! 이제 내 코드가이 reg 키를 확인하고 0으로 변경 한 다음 (0이 아닌 경우) InitializeComponents()를 호출합니다.

키는 웹 브라우저의 동작을 다른 방식으로 변경합니다. 이제 화살표 키는 포커스를 링크에서 링크로 이동시키지 않지만 웹 브라우저보기를 스크롤합니다.

희망도 도움이됩니다.

편집 :에 StackOverflow에

using System; 
using System.Linq; 
using System.Collections.Generic; 
using System.ComponentModel; 
using System.Data; 
using System.Drawing; 
using System.Text; 
using System.Windows.Forms; 

namespace WebBrowser 
{ 
    public partial class Form1 : Form 
    { 

    public Form1() 
    { 
     checkMSHTML(0); 
     InitializeComponent(); 
     webBrowser1.ScriptErrorsSuppressed = false; 
    } 

    private void toolBar1_ButtonClick(object sender, ToolBarButtonClickEventArgs e) 
    { 
     switch (e.Button.ImageIndex) 
     { 
      case 0: 
       webBrowser1.Url = new Uri("http://192.168.128.5/www"); 
       break; 
      case 1: 
       this.Close(); 
       break; 
     } 

    } 

    /// <summary> 
    /// check and change MSHTML rendering engine 
    /// </summary> 
    /// <param name="iVal">0 = use new IE6 engine, enable JavaScript 
    /// 1 = use old PIE engine</param> 
    /// <returns></returns> 
    bool checkMSHTML(int iVal) 
    { 
     bool bRet = false; 
     Microsoft.Win32.RegistryKey rKey = Microsoft.Win32.Registry.LocalMachine.OpenSubKey(@"Security\Internet Explorer",true); 
     if (rKey != null) 
     { 
      int iMSHTML = (int) rKey.GetValue("MSHTML"); 
      if (iMSHTML != iVal) 
      { 
       rKey.SetValue("MSHTML", iVal, Microsoft.Win32.RegistryValueKind.DWord); 
       rKey.Flush(); 
       rKey.Close(); 
       bRet = true; 
      } 
      else 
      { 
       rKey.Close(); 
       bRet = true; 
      } 
     } 
     return bRet; 
    } 
    } 
} 
+0

Josef에서 C#으로이 작업을 수행하는 방법의 예를 게시 할 수 있습니까? 며칠 동안 Windows Mobile에서 프로그래밍을 시작했고 많은 경험이 없습니다. 타이는 우호적이며 나를 도와줍니다. –

+0

Josef 정말 고마워요! 완벽하게 작동합니다! –

+0

@josef 끝내 주셔서 감사합니다, 속임수로 나를 구해 주셨습니다. – bviale

관련 문제