자바스크립트 + VBScript 관련 질문 정보
자바스크립트 + VBScript 관련 질문
본문
그누보드와 상관없는 질문이라서 조심스럽습니다.
글을 올릴만한 게시판이 마땅히 없는것 같아서 여기 올립니다.
아래는 Skype 라는 메신져 비스무리(?) 한 프로그램을
웹 사이트에서 띄워주는 소스인데요
Skype 가 설치되어있으면 챗팅창 열리고,
설치되지 않았다면 다운로드페이지(oopsPopup())가 열리게 하고 싶은데요.
현재는 마지막줄에 return oopsPopup(); 때문에
설치여부에 관계없이 다운로드 팝업창이 뜹니다.
설치 여부를 판단할수 있는 방법이 없을까요?
var activex = ((navigator.userAgent.indexOf('Win') != -1) && (navigator.userAgent.indexOf('MSIE') != -1) && (parseInt(navigator.appVersion) >= 4 ));
var CantDetect = ((navigator.userAgent.indexOf('Safari') != -1) || (navigator.userAgent.indexOf('Opera') != -1));
var CantDetect = ((navigator.userAgent.indexOf('Safari') != -1) || (navigator.userAgent.indexOf('Opera') != -1));
function oopsPopup() {
if((navigator.language && navigator.language.indexOf("ko") != -1) || (navigator.systemLanguage && navigator.systemLanguage.indexOf("ko") != -1) || (navigator.userLanguage && navigator.userLanguage.indexOf("ko") != -1)) {
var URLtoOpen = "http://skype.auction.co.kr/community/button_pop.asp";
} else {
var URLtoOpen = "http://download.skype.com/share/skypebuttons/oops/oops.html";
}
var windowName = "oops";
var popW = 540, popH = 305;
var scrollB = 'no';
w = screen.availWidth;
h = screen.availHeight;
var leftPos = (w-popW)/2, topPos = (h-popH)/2;
oopswindow = window.open(URLtoOpen, windowName,'width=' + popW + ',height=' + popH + ',scrollbars=' + scrollB + ',screenx=' +leftPos +',screeny=' +topPos +',top=' +topPos +',left=' +leftPos);
return false;
}
if((navigator.language && navigator.language.indexOf("ko") != -1) || (navigator.systemLanguage && navigator.systemLanguage.indexOf("ko") != -1) || (navigator.userLanguage && navigator.userLanguage.indexOf("ko") != -1)) {
var URLtoOpen = "http://skype.auction.co.kr/community/button_pop.asp";
} else {
var URLtoOpen = "http://download.skype.com/share/skypebuttons/oops/oops.html";
}
var windowName = "oops";
var popW = 540, popH = 305;
var scrollB = 'no';
w = screen.availWidth;
h = screen.availHeight;
var leftPos = (w-popW)/2, topPos = (h-popH)/2;
oopswindow = window.open(URLtoOpen, windowName,'width=' + popW + ',height=' + popH + ',scrollbars=' + scrollB + ',screenx=' +leftPos +',screeny=' +topPos +',top=' +topPos +',left=' +leftPos);
return false;
}
if(typeof(detected) == "undefined" && activex) {
document.write(
['<script language="VBscript">',
'Function isSkypeInstalled()',
'on error resume next',
'Set oSkype = CreateObject("Skype.Detection")',
'isSkypeInstalled = IsObject(oSkype)',
'Set oSkype = nothing',
'End Function',
'</script>'].join("\n")
);
}
document.write(
['<script language="VBscript">',
'Function isSkypeInstalled()',
'on error resume next',
'Set oSkype = CreateObject("Skype.Detection")',
'isSkypeInstalled = IsObject(oSkype)',
'Set oSkype = nothing',
'End Function',
'</script>'].join("\n")
);
}
function skypeCheck() {
if(CantDetect) {
return true;
} else if(!activex) {
var skypeMime = navigator.mimeTypes["application/x-skype"];
detected = true;
if(typeof(skypeMime) == "object") {
return true;
} else {
return oopsPopup();
}
} else {
if(isSkypeInstalled()) {
detected = true;
return true;
}
}
detected = true;
return oopsPopup();
}
return true;
} else if(!activex) {
var skypeMime = navigator.mimeTypes["application/x-skype"];
detected = true;
if(typeof(skypeMime) == "object") {
return true;
} else {
return oopsPopup();
}
} else {
if(isSkypeInstalled()) {
detected = true;
return true;
}
}
detected = true;
return oopsPopup();
}
댓글 전체
MSN 용입니다.
<script language="javascript">
function send_MSN(str_Umail) {
var myMsn = str_Umail;
MsnObj = new ActiveXObject("Messenger.UIAutomation");
if(MsnObj.MyStatus == 1) {
alert("MSN 메신저에 먼저 로그인 해주세요.");
} else {
try {
MsnObj.InstantMessage(myMsn);
} catch(e){
}
}
return;
}
</script>
<a href="javascript:send_MSN('*** 개인정보보호를 위한 이메일주소 노출방지 ***')">xxxx</a>
<script language="javascript">
function send_MSN(str_Umail) {
var myMsn = str_Umail;
MsnObj = new ActiveXObject("Messenger.UIAutomation");
if(MsnObj.MyStatus == 1) {
alert("MSN 메신저에 먼저 로그인 해주세요.");
} else {
try {
MsnObj.InstantMessage(myMsn);
} catch(e){
}
}
return;
}
</script>
<a href="javascript:send_MSN('*** 개인정보보호를 위한 이메일주소 노출방지 ***')">xxxx</a>

<a href='skype:ID?chat' onclick='return skypeCheck();'> 엥커는 이렇게 걸거든요.
그리고 MSN 메신저가 아니라서......
아무튼 관심가져주셔서 감사드립니다.
그리고 MSN 메신저가 아니라서......
아무튼 관심가져주셔서 감사드립니다.
var skypeMime = navigator.mimeTypes["application/x-skype"];
이 값의 유무로 판별이 안 되나 보죠?
이 값의 유무로 판별이 안 되나 보죠?

네....설치해도 undefined...설치안해도 undefined
감사합니다.
감사합니다.
설치하면 mimetype이 설정이 될 거 같다는 생각이 들어서요.

제 생각인데요.
if(typeof(detected) == "undefined" && activex) {
document.write(
['<script language="VBscript">',
'Function isSkypeInstalled()',
'on error resume next',
'Set oSkype = CreateObject("Skype.Detection")',
'isSkypeInstalled = IsObject(oSkype)',
'Set oSkype = nothing',
'End Function',
'</script>'].join("\n")
);
}
요 부분을 이해하면 될것 같은데..
익스플로러 + 윈도 환경인 제 컴퓨터에서는 항상 마지막 else 가 실행되니까요.
} else {
if(isSkypeInstalled()) {
detected = true;
return true;
}
}
워낙에 모르는 초보라서....
관심가져주셔서 감사드립니다.
if(typeof(detected) == "undefined" && activex) {
document.write(
['<script language="VBscript">',
'Function isSkypeInstalled()',
'on error resume next',
'Set oSkype = CreateObject("Skype.Detection")',
'isSkypeInstalled = IsObject(oSkype)',
'Set oSkype = nothing',
'End Function',
'</script>'].join("\n")
);
}
요 부분을 이해하면 될것 같은데..
익스플로러 + 윈도 환경인 제 컴퓨터에서는 항상 마지막 else 가 실행되니까요.
} else {
if(isSkypeInstalled()) {
detected = true;
return true;
}
}
워낙에 모르는 초보라서....
관심가져주셔서 감사드립니다.