본문 바로가기
Programming/Tips(C++,C#)

C# WinForm의 WebBrowser컨트롤 사용 시 javascript:void(0) 동작 안하는 경우

by 곰네Zip 2016. 7. 4.

C#에서 윈폼의 WebBrowser컨트롤을 사용하여 브라우저를 만들 때, 아래와 같은 경우 경로 탐색을 정상적으로 하지 못한다.

 <a href="javascript:void(0)" onclick="func()"...></a>

func(){

 ...

 window.location.replace("url2");

 ...

}

 

위와 같은 페이지를 만나면 url2로 탐색을 하고, javascript:void(0)을 다음에 탐색을 하는데, 이 코드가 동작하지 않음.

 해결책은 레지스트리에 값을 써야한다. (레지스트리 건드리기 싫어하지만 답이 없다.)

 

 HKLM(or HKCU)\\Software\\Microsoft\\Internet Explorer\\Main\\FeatureControl에..

FEATURE_SCRIPTURL_MITIGATION 키 아래에 아래 값을 설정한다.

$(실행파일명) (0x00000001)

 값 형태는 DWORD. 파일명은 실행하는 파일명(exe). 전체경로를 쓰는게 아니라 올라오는 프로세스 이름을 기록해주면 된다.

 

참고로 WebBrowser의 Internet Explorer 실행 버전을 정해주려면

FEATURE_SCRIPTURL_MITIGATION 대신 FEATURE_BROWSER_EMULATION 키 아래에 파일명과 버전명을 기록해주면 됨. 단, 버전은 아래와 같다.

 IE8 : 8000, 8888

 IE9 : 9000, 9999

 IE10 : 10000, 10001

 IE11 : 11000, 11001

 각각 앞의 8000,9000,10000,11000등은 각 IE버전의 기본 값.

 

반응형

댓글