Page 1 of 1

브라우저 체크를 하는 사이트에 접속하려는데..

Posted: 2007 02 20 21:22 54
by salm2000
제가 자주 가는 베스트애니메(http://bestanime.co.kr/) 사이트는 익스플로러 전용입니다.
하지만 제가 그것을 이용할 때 익스플로러를 써야할 까닭은 없다고 여겨집니다.
다만 파이어폭스(MSIE가 아닌 브라우저)로 접속하면
http://bestanime.co.kr/errors/netscape.html라는 페이지로 이동해 버립니다.
그래서 User Agent 확장을 설치하여 접속합니다.

그런데 이 User Agent 확장은 자동 적용이 아니라 필요할 때마다 사용자가 기능을 켜 주어야만 하기 때문에 조금 불편합니다.

제가 보기에 아래 부분만 어떻게 통과하면 윈도가 아니라도, MSIE가 아니라도 쉽게 접속할 수 있을 듯이 보입니다.

Code: Select all

	/*==================================================================================================================================
		브라우저 체크
	==================================================================================================================================*/
	if ((navigator.userAgent.indexOf("MSIE") != -1) && (navigator.userAgent.indexOf("Windows") != -1))		{
		userAppVersion	= eval(navigator.appVersion.substr(navigator.userAgent.indexOf("MSIE") - 3,3));

		if (userAppVersion >= 5.5)
			filterSupport	=	true;
	}

if (navigator.userAgent.indexOf("MSIE") == -1) {
	location.href="http://bestanime.co.kr/errors/netscape.html";
}
혹시 저런 자바스크립트의 기능을 정지시켜 주는 확장은 없나요?

Posted: 2007 02 20 23:53 22
by 화성
이 경우는 NoScript로 자바스크립트가 아예 실행되지 못하게 막고, 스크립트가 꼭 필요한 부분은 그리스몽키로 고쳐서 쓸 수 있겠습니다.

아니면 about:config에서 general.useragent.extra.firefox의 아무 곳에나 MSIE를 넣어두는 수도 있습니다. 단 파이어폭스의 버전이 바뀌면 같이 바꿔줘야 한다는 것과 다른 사이트에서 IE로 인식해 오동작을 할 수 있다는 문제가 있죠.

마지막으로 좀 복잡한 방법도 하나 있습니다. 외부 스크립트를 가로채는 확장기능userChrome.js를 받아 설치하시고, <프로필 폴더>/chrome/userChrome.js에 다음 코드를 넣으면 됩니다.

Code: Select all

(function(){
  var hijacker = Cc["@hwasungkim.com/hijacker;1"].getService().wrappedJSObject;
  hijacker.watch("http://bestanime.co.kr/inc/js/default.js",
    "String.prototype._orig_indexOf = String.prototype.indexOf;" +
    "String.prototype.indexOf = function(searchValue, fromIndex) {" +
    "return searchValue == 'MSIE' ? 0 : this._orig_indexOf(searchValue, fromIndex);" +
    "}", false);
})();
이건 그 사이트의 브라우저 체크하는 부분 앞에 외부 스크립트를 불러오는 부분이 있어 가능했습니다.

우선 첫화면까지는 됩니다.

Posted: 2007 02 21 09:58 05
by salm2000
확장을 설치하고 userChrome.js도 설치했습니다.

http://bestanime.co.kr/ 의 메인화면까지는 되는데...
그리고 로그인까지도 됩니다.
그 다음부터는 안됩니다.

다행이라면... 실수로 그 사이트에 User Agent를 끄고 접속해도 제대로 보여준다는 점입니다.
접속한 다음에 User Agent를 켜는 수밖에 없어 보이네요.

아무튼 그 정도로 만족해야겠네요. 고맙습니다.

그렇군요.

Posted: 2007 02 21 13:39 37
by 화성
어딘가에 "http://bestanime.co.kr/inc/js/default.js"를 불러오지 않는 페이지가 있나 보네요. :)