SkypeがインストールされているWindowsマシンでは、電話形式のすべての番号がSkypeリンクに変換される傾向があるため、Skypeで電話をかけるためにクリックすることができます。
問題は、ページ上の特定の番号でそれが発生するのをどのように防ぐかです。
数字を1つのテキストとして出力しないようにしてください。それ以外の
<span>888-555-1212</span>
試す
<span>888-</span><span>555-1212</span>
そしてそれはスカイプを無効にします
アップデート
この回答はもはや正確ではありません。詳細については、 DanielByrneの回答を参照してください。
CSSのみを使用して、Skypeで使用されているスタイルを上書きすることで削除できます。次の2行をスタイルシートに追加してみてください。
span.skype_pnh_container {display:none !important;}
span.skype_pnh_print_container {display:inline !important;}
Skypeは、ランダムに生成された数字の文字列をスパンタグの末尾に追加することにしました。そのため、Grooからの上記の応答は完全に正確ではなくなりました。ページ上のすべてのSkypeタグを正しく選択するには、次のようなCSS3ワイルドカードセレクターを使用します。
span[class^='skype_pnh_container'] {display:none !important;}
span[class^='skype_pnh_print_container'] {display:inline !important;}
演算子により、属性セレクターは、^=
「skype_pnh_container」および「skype_pnh_print_container」で始まる値を含むクラスを持つ要素をマッハします。
<meta name="SKYPE_TOOLBAR" content="SKYPE_TOOLBAR_PARSER_COMPATIBLE" />
公式の解決策は、次のメタタグをWebページのヘッドセクションに追加することです。これにより、Skypeが電話番号を再フォーマットするのを防ぐことができます。
<meta name="SKYPE_TOOLBAR" content="SKYPE_TOOLBAR_PARSER_COMPATIBLE" />
これはベンダー固有のタグです。Skypeツールバーのメタタグを参照してください
編集:申し訳ありませんが、IE9はソフトハイフンをサポートしていないため、このソリューションに問題があることがわかりました。
この問題には別の解決策があります。
­
電話番号内にソフトハイフン文字()を使用して、問題に対処できます。たとえば、番号が与えられた
<span>0664 111 222 3</span>
への変更
<span>0664­ 111 222 3</span>
そして幸せになる :)
新しいHTML5telプロトコルを使用すると、Skypeジャンクの表示がブロックされることがわかりました。
<a href="tel:+18001234567">1 800 123 4567</a>
私はインターウェブ上で多くの可能な解決策javascriptソリューション、メタタグ、cssを見ました、そして多分私は私のウェブサイトで実際に機能しているハックを見つけました、私はいくつかのコンピュータでテストしましたそしてそれは機能しますそしてスカイプが何かを変えないまでそれは機能すると思います彼らのコードで。
私はSkypeが私たちのページで正確に何をしているのかを調べていました。すでに述べたように、Skypeは電話番号の周りにいくらかのスパンを作成しますが、ドキュメントの最後の本文の閉じたタグの直後にタグを追加します。
そして、ここで私はトリックを見ました!そのオブジェクトの直前に構成タグがあります。
<span id="skype_highlighting_settings" display="none" autoextractnumbers="1"></span>
これはプラグインによって動的に追加されます!しかし、ここで解決策が明らかになります。Skypeがデザインをいじるのをやめ、電話番号を変更しないようにするための解決策は、ドキュメントの非常に早い段階で次のタグを挿入することです。
<span id="skype_highlighting_settings" display="none" autoextractnumbers="0"></span>
autoextractnumbers="0"に注意してください。これがトリックです。属性「autoextractnumbers」がないため、ドキュメントはそのタグでとにかく検証されませんが、コメントされていても機能することに気づきました。
<!-- <span id="skype_highlighting_settings" display="none" autoextractnumbers="0"></span> -->
以上です!厄介なプラグインから解放されたウェブページをお楽しみください!そして、あなたのウェブページはまだ正しく検証されます。それがあなたにもうまくいくことを願っています!私はいくつかのコンピューターで3つの異なるブラウザーと2つの異なるSkypeバージョンをテストしましたが、今のところそれは私のために機能します、それがあなたのためにも機能するかどうか、そしてそれが機能する場合はそれを共有してください:)
これを試して。電話番号のスペースを非表示のスパン+元のスペース文字に置き換えます。そのため、Skypeはそれが番号であることを理解できず、最愛の電話番号は同じままです:)通常、コンテンツ管理者に電話番号を自由に変更させるため、このアプローチを使用する必要がありました。そのため、javascript内でハードコードされた番号を使用できませんでした。もちろん、マークアップはのようになります<span class="phone_number">your number with some spaces inside it<span>
。
$(document).ready(function() {
if ($(".phone_number").length>0) {
$(".phone_number").each(function() {
$(this).html($(this).html().replace(/\s/g,"<span style=\"display:none\">_</span> "));
});
}
});
数字の最初の項にスペースを追加しました。
(888)222-3333の代わりに(888)222-3333と入力しました
確かに:奇妙に見えるかもしれませんが、それは機能し、シンプルです。
番号の前のスパンにハイフンを追加してから、スパンスタイルにdisplay:noneを設定しました。これは機能しました。
<span class="anti-skype-hyphen">-<span>01273 200 ***
あなたがする必要があるのは、CSSセレクターがSkypeが使用するセレクターよりも具体的であることを保証することです。現在のSkypeスタイルシートでは、次のものを使用しています。
span.skype_pnh_container span.skype_pnh_highlighting_inactive_common span.skype_pnh_text_span {...}
このセレクターに追加のクラス(独自のWebサイトコンテキスト)を追加する必要があります。
.myclass span.skype_pnh_container span.skype_pnh_highlighting_inactive_common span.skype_pnh_text_span {...}
番号をそのままにして、JSで削除することもできます。
jQuery(document).ready(function(){jQuery('.skype_pnh_container').parent().html('(555) 222 - 3333');
jQuery('.skype_pnh_container').remove()}
通常のHTMLで行うのは難しいですが、Skypeは親コンテナを削除しないため、IDを使用して番号を入力し、「getElementById」を実行して、innerHTMLを電話番号に設定できます。
document.getElementById('phoneNumberContainer').innerHTML='(555) 222 - 4444';
iOSでPhoneGapを使用している場合、これはUIWebViewの問題である可能性があります(Skypeとは別)。
UIWebViewで自動リンクを生成したくない場合は、次の行で問題を修正します。
self.viewController.webView.dataDetectorTypes = UIDataDetectorTypeNone;
AppDelegate.m内-(BOOL)application:(UIApplication*)application didFinishLaunchingWithOptions:(NSDictionary*)launchOptions