JavaScript для обнаружения Skype?

21
задан nickf 11 December 2008 в 03:49
поделиться

9 ответов

Спасибо за ответы все: из ссылок и методов seanb и некоторых отправленных, я смог предложить решение, которое работает на IE и Firefox, таким образом, я думал, что отправлю 'полный' ответ. Здесь это как удобное расширение jQuery!

Расширение jQuery

jQuery.extend({
    skype : function(failureFunction) {
        var $ = jQuery;

        if ($.browser.safari || $.browser.opera) {
            return true;
        } else if ($.browser.msie) {
            try {
                if (new ActiveXObject("Skype.Detection")) return true;
            } catch(e) { }
        } else {
            if (typeof(navigator.mimeTypes["application/x-skype"]) == "object") {
                return true;
            }
        }
        $('a[href^="skype:"]').click(function() {
            failureFunction();
            return false;
        });
        return false;
    }
});

Использование

HTML:

<a href="skype:your.skype.username?call">Call me</a>
<a href="skype:your.skype.username?add">Add me</a>

JavaScript:

jQuery(function($) {
    $.skype(function() {
        // this function gets called if they don't have skype.
        alert("Looks like you don't have skype. Bummer.");
    });
});

И вот именно!

, Если кто-то использующий Safari, Opera или Chrome приезжает, он просто позволит браузеру иметь дело с ним.

редактирование: перестроенный функция так, чтобы это только выполнило проверку, когда страница загружается, не каждый раз, страница загружается. Эти $.skype функция теперь возвратит bool сообщение Вам, если скайп был обнаружен или не .

31
ответ дан 29 November 2019 в 23:37
поделиться

Работы в IE и Firefox, но не Chrome или Opera

function isSkypeInstalled(str) {
    try {
        /*@cc_on
        //The Microsoft way, thanks to the conditional comments only run in IE
        if (new ActiveXObject("Skype.Detection")) return true;
        @*/

        //Tested for firefox on win
        if (navigator.mimeTypes["application/x-skype"]) return true;
    }
    catch(e){}
    return false;
}
7
ответ дан 29 November 2019 в 23:37
поделиться

Плагин в скайпе для IE изменяет DOM, таким образом, Вы можете всегда иметь 'фиктивное' поле номера телефона где-нибудь и высматривать любые введенные элементы 'промежутка' с именем класса 'skype_tb_injection'...

то, Что Вы ищете, является чем-то вроде этого:

<SPAN onmouseup=".." class="skype_tb_injection" onmousedown="..." id="softomate_highlight_0" onmouseover="..." title="Call this phone number in Thailand with Skype: +66812341234" onclick="..." onmouseout="..." durex="0" context="+66 8 1234 1234" IamRTL="0">
  <SPAN class="skype_tb_nop">&nbsp;</SPAN>
  <SPAN onmouseup="..." class="skype_tb_imgA_flex" onmousedown="..." id="skype_tb_droppart_0" onmouseover="..." title="Skype actions" style="..." onclick="..." onmouseout="...">
    &nbsp;&nbsp;
    <SPAN class="skype_tb_nop">&nbsp;</SPAN>
    <SPAN class="skype_tb_imgFlag" id="skype_tb_img_f0" style="...">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</SPAN>
    &nbsp;
    <SPAN class="skype_tb_nop">&nbsp;</SPAN>
  </SPAN>
  <SPAN class="skype_tb_imgS" id="skype_tb_img_s0" style="...">&nbsp;</SPAN>
  <SPAN class="skype_tb_injectionIn" id="skype_tb_text0" style="...">
    <SPAN class="skype_tb_innerText" id="skype_tb_innerText0"> +6...</SPAN>
  </SPAN>
  <SPAN class="skype_tb_imgR" id="skype_tb_img_r0" style="...">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
    <SPAN class="skype_tb_nop">&nbsp;</SPAN>
  </SPAN>
</SPAN>
2
ответ дан 29 November 2019 в 23:37
поделиться

кажется, что Вы кодируете себя во что-то вроде угла там.. попытка обнаружить скайп с JS, исчерпывание экранной недвижимости.

все это могло бы быть более дружественным, если вместо этого, ссылка "Контакта" берет пользователя к странице контакта с Вашим "скайпом": ссылки и Ваш объяснительный контент загрузки в скайпе. это будет набор, более полезный, чем JS раскрывается.

Вы могли добавить некоторый prefs, как, "у меня есть скайп, не показывают эту страницу снова" флажок к этой странице. Затем используйте ту приставку для переключения ссылки "Контакта".

1
ответ дан 29 November 2019 в 23:37
поделиться

Нет, не обычно возможно обнаружить, если скайп или какое-либо другое программное обеспечение установлены от веб-страницы, если приложение не делает что-то определенное для предоставления доступа к информации доступной как, изменяют строку агента пользователя а-ля .NET, или у Вас есть специальное расширение браузера,

0
ответ дан 29 November 2019 в 23:37
поделиться

Это не было бы тем, что хочет политика безопасности JavaScript.

Без плагина или другого третьего лица наполняют Вас, никогда не получают такой infos. Только можно получить информации недостающих плагинов, но не недостающего программного обеспечения на ОС.

должно также быть проблематичным для получения этой работы над mac& linux& окна одновременно.

0
ответ дан 29 November 2019 в 23:37
поделиться

Могло бы стоить записать апплет Java со знаком. Тем путем можно, по крайней мере, получить доступ к ОС и определить, установлен ли Skype тот путь. Иначе, как замечено, JavaScript не позволяет такую вещь (если это сделало, Ваш компьютер уже был бы, поставленных под угрозу).

-1
ответ дан 29 November 2019 в 23:37
поделиться

Вы можете использовать стандарт W3C, и браузер определит, какое программное обеспечение установлено для управления вызовами:

<a href="callto:<phone_number>"><phone_number></a>
0
ответ дан 29 November 2019 в 23:37
поделиться

Я просто тестировал в своей Fedora 12, Linux платформа, используя firefox или другой браузер не работает протокол skype.

Даже если установлен linux skype.

N.B: Вышеприведенные ссылки подходят для платформы Windows

0
ответ дан 29 November 2019 в 23:37
поделиться
Другие вопросы по тегам:

Похожие вопросы: