【问题标题】:How to prevent phone numbers to be converted into Skype links?如何防止电话号码被转换为 Skype 链接?
【发布时间】:2011-03-03 05:23:06
【问题描述】:

在那些安装了Skype 的 Windows 机器上,它倾向于将所有电话格式的号码转换为 Skype 链接,以便您可以单击它以在 Skype 上拨打电话。

问题是如何防止页面上的某个数字发生这种情况?

【问题讨论】:

  • AFAIK 它是您浏览器中的一个插件。转到扩展页面并禁用/卸载它。
  • 不能修改设置或浏览器配置。我正在寻找一种方法来中断或绕过 Skype 转换脚本。
  • @ZeissS 我认为他的意思是通过使用 JavaScript,从而使页面禁用 Skype 的修改...
  • 好问题。 Skype 处理的链接有点重,可能会导致空间狭窄的格式问题。禁用电话号码是一件好事吗?我想知道....

标签: javascript jquery html css skype


【解决方案1】:

尽量不要将数字输出为单个文本。而不是

<span>888-555-1212</span>

试试

<span>888-</span><span>555-1212</span>

它会禁用Skype

【讨论】:

  • @Yuval:我不是刚给你写信吗? (stackoverflow.com/users/255562/ashish-gupta)
  • @Yuval:但你看到相似之处了吗?
  • 我用这种方法做了一个快速插件,有些人可能会觉得有用。 owenmelbz.github.com/noSkype
  • 这仅适用于有限数量的数字。
  • @c_k:我不确定你的意思。我认为这里没有限制 - 例如,为什么不能将每个数字放在单独的跨度中?
【解决方案2】:

你也可以不理这个号码,用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';

【讨论】:

    【解决方案3】:

    更新

    此答案不再准确 - 请参阅 Daniel Byrne's answer 了解更多信息。


    仅使用 CSS,可以通过覆盖 Skype 使用的样式来删除它。尝试将这两行添加到您的样式表中:

    span.skype_pnh_container {display:none !important;}
    span.skype_pnh_print_container {display:inline !important;} 
    

    【讨论】:

    • 您的解决方案对我来说效果很好,感觉是正确的解决方案(而不是将电话号码分成多个跨度标签)。迷上语音对我有用!而且,优秀的名字和头像:)
    • 感谢您的建议。不错的解决方案,但缺点是依赖于 Skype 精确生成的 CSS 元素/类名称。如果他们更改它,该站点将再次中断。 span 解决方案一定是最万无一失的,虽然不是最漂亮的。
    • 将电话号码拆成碎片的问题在于,搜索引擎不会将它们读取为电话号码,而是将它们读取为 3 个单独的小数字,因此如果人们搜索您的公司电话号码,您的页面可能不会显示在结果中
    • 同样,我们不应该混淆您希望客户端阅读和使用的信息——tel: 协议应该允许手机浏览器直接从浏览器发起呼叫提示,而不是费力在电话应用中复制粘贴。
    • 什么冠军!谢谢你。
    【解决方案4】:

    &lt;meta name="SKYPE_TOOLBAR" content="SKYPE_TOOLBAR_PARSER_COMPATIBLE" /&gt;

    【讨论】:

    【解决方案5】:

    试试这个。它将电话号码中的空格替换为不可见的跨度 + 原始空格字符。所以Skype无法理解它是一个数字,我们心爱的电话号码保持不变:)我不得不使用这种方法,因为我通常让内容管理员随意更改电话号码,因此我不能在javascript中使用硬编码号码。当然你的标记应该看起来像&lt;span class="phone_number"&gt;your number with some spaces inside it&lt;span&gt;

    $(document).ready(function() {
        if ($(".phone_number").length>0) {
            $(".phone_number").each(function() {
                $(this).html($(this).html().replace(/\s/g,"<span style=\"display:none\">_</span>&nbsp;"));
            });
        }
    });
    

    【讨论】:

      【解决方案6】:

      我在互联网上看到了很多可能的解决方案 javascript 解决方案、元标记、css,也许我发现了一个真正适用于我的网站的 hack,我在一些计算机上进行了测试,并且它可以工作,我认为它会工作,直到 Skype 没有' t 更改他们的代码中的某些内容。

      我正在查看我们页面上的 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 版本,现在它适用于我,让我知道它是否也适用于你,如果它适用,请分享它:)

      【讨论】:

        【解决方案7】:

        我在数字的第一项添加了一个空格。

        我输入的是 (888) 222-3333 而不是 (888) 222-3333

        当然:可能看起来很奇怪,但它很有效而且很简单。

        【讨论】:

          【解决方案8】:

          如果您在 iOS 上使用 PhoneGap,这可能是 UIWebView 问题(与 Skype 不同)。

          如果您不希望在 UIWebView 中生成自动链接,则以下行修复了该问题:

          self.viewController.webView.dataDetectorTypes = UIDataDetectorTypeNone;
          

          -(BOOL)application:(UIApplication*)application didFinishLaunchingWithOptions:(NSDictionary*)launchOptions 中的 AppDelegate.m 内

          【讨论】:

            【解决方案9】:

            编辑:抱歉,我刚刚发现 IE9 存在此解决方案的问题,因为它不支持软连字符。

            这个问题有一个替代解决方案:

            您可以在电话号码中使用软连字符 (&amp;shy;) 来解决此问题。例如,给定数字

            <span>0664 111 222 3</span>
            

            改成

            <span>0664&shy; 111 222 3</span>
            

            开心就好:)

            【讨论】:

              【解决方案10】:

              我在数字前的 span 中添加了一个连字符,然后在 span 样式上设置 display:none,这很有效。

                  <span class="anti-skype-hyphen">-<span>01273 200 ***
              

              【讨论】:

                【解决方案11】:

                Skype 已将随机生成的数字字符串添加到其 span 标签的末尾,因此 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”开头的值的类的元素进行处理

                【讨论】:

                  【解决方案12】:

                  您需要做的就是确保您的 CSS 选择器比 Skype 使用的选择器更具体。在他们使用的当前 Skype 样式表中:

                  span.skype_pnh_container span.skype_pnh_highlighting_inactive_common span.skype_pnh_text_span {...}
                  

                  您需要向此选择器添加一个额外的类——您自己的网站上下文,即

                  .myclass span.skype_pnh_container span.skype_pnh_highlighting_inactive_common span.skype_pnh_text_span {...}
                  

                  【讨论】:

                    【解决方案13】:

                    官方的解决方案是在你网页的head部分添加如下meta标签。这将阻止 Skype 对电话号码进行任何重新格式化。

                    &lt;meta name="SKYPE_TOOLBAR" content="SKYPE_TOOLBAR_PARSER_COMPATIBLE" /&gt; 

                    这是一个供应商特定的标签。见Skype Toolbar meta tag

                    【讨论】:

                      【解决方案14】:

                      我刚刚发现,如果您使用新的 HTML5 tel 协议,它会阻止 Skype 垃圾的出现:

                      <a href="tel:+18001234567">1 800 123 4567</a>
                      

                      【讨论】:

                      • 与上述所有答案相比,这个对我有用。
                      猜你喜欢
                      • 2011-05-19
                      • 2023-03-25
                      • 2014-01-25
                      • 1970-01-01
                      • 2019-04-15
                      • 1970-01-01
                      • 1970-01-01
                      • 2011-03-27
                      相关资源
                      最近更新 更多