홈피 (IE띄우면 처음 뜨는 곳)를 '조건문' 으로 붙일 수 있나요 ?
2011.11.22 10:14
예를 들면..
http://a.com 이란 곳을 기본 홈피로 삼고.. IE띄우면 그리 가고싶은데.. 만약 그 홈피가 안뜨면..
http://b.com 이 대신 뜨게 하고 싶습니다. javascript 이런걸로 해결할 수 있을까 해서요. 그림은 하나 안 뜨면 onError 해서 다른거 띄울 수 있잖아요.
코멘트 6
-
iris
11.23 11:31
-
일단 그 오류 코드를 받아서 처리할 코드가 시작페이지에 들어가 있어야 하고,
a.com에서 실행이 되어야 하는데, a.com 자체가 연결이 안 된다는 것은 그 시작페이지도
실행이 안 될텐데..^^
잘은 모르겠지만,
라우터 장비에서 처리할 수 없을까요?
DNS 설정이라던지..
DNS 설정은 시간이 좀 걸리는 관계로, 예전에 a.com 주소를 도메인호스팅에 연결해서
a.co.kr 서버로 연결시켰다가, 그 사이트가 문제가 난 경우 b.co.kr로 연결 되도록 했던 것은
기억이 나는데... 도메인호스팅은 24시간 안정적으로 돌아가기 때문에 그렇게 처리했던
기억이 있네요.
-
조슈아
11.28 11:41
혹시 원하시던게 이정도 수준인가요...
위에 분들 너무 네트워크에 깊은 부분까지 들어가시는 거 같어서.. 그냥 자바스크립트로 하나 짜 봤습니다.
<html>
<head>
<title> test </title>
<script type="text/javascript">
var img = new Image();
img.src = 'http://www.kpug.kr/files/attach/images/795244/KPUGlate2011betaLogo.png';
if (img.height > 0) {
//alert('yes');
document.location.href = "http://www.kpug.kr";
} else {
//alert('no');
document.location.href = "http://www.clien.net";
}
</script>
</head>
<body>
</body>
</html> -
왕초보
11.29 05:36
조슈아님 말씀대로 하면 되긴 하는데 두가지 문제가 생기는 군요.
1. 서버쪽에서 저런 식으로 image를 보는 것을 허용하지 않는 경우 no로 자동으로 갑니다. 실제로 첫번째 사이트가 멀쩡하게 보이는데도요.
2. #1의 경우에.. 수동으로 첫번째 사이트를 본 다음엔 잘 됩니다. 즉.. cache에 있는 image를 보고 넘어가는듯 합니다. 이럴 경우 실제로 첫번째 사이트가 안 보이는데도 저리 갈려고 노력할듯 보입니다. -_-;;
라우팅장비에서 처리해 버릴 수도 있는데요.. 그러면 그 라우터를 들고 다녀야 한다는.. ㄷㄷㄷ 여튼.. img 태그처럼 body tag에서도 onError가 먹는다면 간단히 처리가 되긴 할텐데.. 모르겠네요.
조슈아님 방법에서 #2 문제는 어떻게든 cache를 flush하는 방법을 찾으면 될듯도 하지만 #1 문제는 해결할 방법이 없네요. ㅠㅜ
고맙습니다만.. 조금만 더.. 찾아봐주세요.
-
조슈아
11.29 09:40
1.번 저런식으로 이미지를 보는 것을 허용하지 않는 다는게 서버 html 에서 접근하는 건만 허용한다는 뜻인가요?
2. 번은 cache 를 말씀하시는 걸 테고...
음.. 생각 좀 해보죠,,, 자바스크립트를 짜본지가 오래되서 문법이 잘 생각 안난다는 ㅋㅋ ^ ^
-
조슈아
11.30 10:55
<html>
<head>
<title> test </title>
<script language="javascript" type="text/javascript">
// XMLHttpRequest init
var request = false;
try {
request = new XMLHttpRequest();
} catch (trymicrosoft) {
try {
request = new ActiveXObject("Msxml2.XMLHTTP");
} catch (othermicrosoft) {
try {
request = new ActiveXObject("Microsoft.XMLHTTP");
} catch (failed) {
request = false;
}
}
}
if (!request)
alert("Error initializing XMLHttpRequest!");
// variable init
var site1 = "http://kpug.me:8080/index.jsp";
var site2 = "http://www.clien.net/index.php";
var param = "?hash=";
// random parameter for no-cache
var url1 = site1 + param + Math.random();
var url2 = site2 + param + Math.random();
var timeout = 5000;
// timeout set
window.setTimeout(abortSendMessage, timeout);
// XMLHttpRequest send
request.open("GET", url1, true);
request.onreadystatechange = updatePage;
request.send(null);
// XMLHttpRequest request process
function updatePage() {
//alert(url1);
if (request.readyState == 4) {
//alert("httpstatus::"+request.status);
if ( request.status == 200 || request.status == 0) {
//alert('res::'+request.responseText);
// alert(url1);
document.location.href = url1;
} else {
// alert(url2);
document.location.href = url2;
}
} else {
//alert("httpstatus::"+request.status);
}
}
// XMLHttpRequest timeout abort
function abortSendMessage() {
//alert('time out error!'+request.readyState);
if(request.readyState < 4) {
request.abort();
} else {
updatePage();
}
}
</script>
</head>
<body>
</body>
</html>이걸 할려고 ajax 쓰다니 쩝...
근데도 몬가 깔끔하지는 않네요...
ie8 에서는 로컬파일로 해도 잘 되는데
다른 브라우저에서는 http status code 0 이 떨어져서 보니 cross domain 문제라는 군요.
check 할려는 site1 에 이 html 을 올려놓고 브라우저가 캐싱하게 하면 되긴 하는데..
그건도 가능 안하면 또 애매하군요.
머리속에서 대충 로직은 서 있는데, 웹 쪽으로는 문외한이라 구현하는 방법 말씀을 못드립니다. 일단 페이지가 없으면 그 종류에 따라서 오류 코드가 뜨는 만큼 그 코드를 검출하도록 하여 그럴 때 새 사이트를 시작토록 하면 될것 같습니다.