【问题标题】:How can I remove Skype phone number recognition?如何删除 Skype 电话号码识别?
【发布时间】:2011-03-27 18:38:25
【问题描述】:

如果安装了 Skype,电话号码会在某些浏览器中显示为带有 Skype 图标。

我永远不想在任何地方显示 Skype 图标。

是否有任何 JavaScript 或 PHP 函数可以处理这个问题?

【问题讨论】:

  • 也许考虑将接受的答案更改为 krisdyson 的而不是 Jigar 的(有反对票)。请注意,hans 的回答对于未来的变化是脆弱的,并且不会阻止 DOM 的变化。

标签: php javascript html


【解决方案1】:

使用以下 CSS 来防止 Skype 格式化您页面上的数字:

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

编辑 Skype 开始在班级名称中添加数字以使其唯一。您可以使用新的 Css 选择器来解决

span.skype_pnh_container {display:none !important;}
span.skype_pnh_print_container, span[class^="skype_pnh_print_container"] {display:inline !important;} 

【讨论】:

  • 非常适合我。这应该是真正的正确答案。
  • tl;dr:这个答案很糟糕:点击通话插件仍然通过插入跨度来修改您的 DOM,这可能会对您的 CSS 和 $() 选择器产生副作用。此外,点击通话功能仍然有效(在我们的情况下我们绝对不希望这样做,因为它将成本中心代码检测为电话号码 - 啊)。使用 CSS 也很脆弱 - 如果他们将来更改插件,您的修复将会中断。
  • 这对 Opera Mobile 没有帮助,它会使一些数字变成蓝色并且可点击,例如123.45.
【解决方案2】:

添加这个

<meta name="SKYPE_TOOLBAR" content ="SKYPE_TOOLBAR_PARSER_COMPATIBLE"/>

【讨论】:

  • 只有这样才能正常工作。进一步解释webmasters.stackexchange.com/questions/34862/…
  • 我刚刚测试过,使用 &lt;meta name="SKYPE_TOOLBAR" content="SKYPE_TOOLBAR_PARSER_COMPATIBLE"&gt; 仍然会禁用 Skype 点击通话电话号码突出显示。我安装了 Skype Click To Call 并在 IE11 中启用了该插件。包含电话号码但没有元标记的测试网页现在修改了电话号码元素(例如,使用onclick="SkypeClick2Call.MenuInjectionHandler.makeCall(this, event)" 插入了父跨度)。我在页面标题中添加了元标记,电话号码不再被修改(window.SkypeClick2Call 对象也不再被注入)。
  • 这对 Opera Mobile 没有帮助,它会使一些数字变成蓝色并且可点击,例如123.45.
【解决方案3】:

在谷歌上搜索了这个问题的答案后,随着我们接近 2012 年,问题似乎仍然存在。显然&lt;meta&gt; 标签不再有效,并且 Skype 插件与以往一样具有侵入性 - 破坏 SKU和部件号 在某些情况下(错误地将它们解释为电话号码)。

我很惊讶看到这么多人误解了从 Web 开发人员的角度禁用此功能的愿望,并提供了通过更改浏览器设置等来关闭它的解决方案。当然,我们不能真的指望我们的用户这样做。

Skype 将采用如下方式:

555-555-5555

然后把它变成这样:

<span class="skype_pnh_print_container">
    555-555-5555
</span>
<span class="skype_pnh_container" dir="ltr">
    <span class="skype_pnh_mark"> begin_of_the_skype_highlighting</span> 
        <span class="skype_pnh_highlighting_inactive_common" title="Call this phone number in United States of America with Skype: +15555555555" dir="ltr">
            <span class="skype_pnh_textarea_span"><span class="skype_pnh_text_span">555-555-5555</span>
            </span>
        </span>
    <span class="skype_pnh_mark">end_of_the_skype_highlighting</span>
</span>

看起来像这样:

以富文本格式(例如在电子邮件、所见即所得或 Word 文档中)复制和粘贴 Skype 的电话号码可能会出现如下结果:

begin_of_the_skype_highlighting 555-555-5555 end_of_the_skype_highlighting

太糟糕了,没有明确的方法可以防止它。处理这种入侵的only way I found 是通过使用javascript 删除标记。

使用 jQuery 的示例:

window.setTimeout(function() {

    // Remove the class from the wrapper <span> Skype adds to the number
    $('.skype_pnh_print_container').removeClass('skype_pnh_print_container');

    // Remove the generated content from Skype
    $('.skype_pnh_container').remove();

}, 100); // If it doesn't work, set a higher value

你会先看到一闪而过的丑陋,但setTimeout是必要的,因为Skype内容是在页面加载后立即生成的。

【讨论】:

  • +1 真正解决了这个问题。可惜解决方案太丑了。
  • 一些较新的客户端更改了类名。除了上面的出色答案之外,您还需要添加: $('.skype_c2c_print_container').removeClass('skype_c2c_print_container'); $('.skype_c2c_container').remove();到你的脚本。
【解决方案4】:

我按照 hans 的建议尝试了(更新的)css,但它在最新版本的 Chrome (17.0.963.78 m) 中不起作用

skype 插件似乎又变了,因为 skype 生成的代码(在我的 Chrome 版本中)与 Madmartigan 显示的不同

我尝试在我的电话号码中间添加评论:

例如:

555<!--stop skype -->-555-5555

这似乎有效。即它停止Skype将其识别为电话号码。 我唯一不确定的是它如何影响 Google 搜索电话号码。

我确实通过机器人模拟器运行了该页面:

http://www.xml-sitemaps.com/se-bot-simulator.html

并且评论没有显示,所以我希望它不会影响 Google 搜索。

CSS 对我来说是最好的解决方案,但它是一个移动的目标,所以我更喜欢 javascript 的“注释”方法,但我想不同的方法在不同的情况下更容易。

编辑

好吧,吃我的话。 Skype 非常聪明。如果您的电话号码的前缀是“打电话给我们”而不是我最初测试的“电话”,那么在号码内添加评论是行不通的。

我尝试了另一种方法,即使用软连字符,例如

555&shy;-555-5555

这行得通。

【讨论】:

  • 这确实有效,这种方法的唯一问题是它也会阻止手机号码被检测到。所以不幸的是,Web 开发人员被 Skype/Microsoft 的一些白痴程序员劫持为人质,他们有愚蠢的想法来改变页面上的 html 与丑陋的怪物,即他们的可点击数字。白痴。
  • 您可以将您的电话号码包裹在“tel:”命令中,使其在手机上可点击,例如555­ 555-5555
【解决方案5】:

那是您浏览器的Skype插件。当您安装 Skype 软件时,它会自动为 firefox 和 IE AFAIK 添加该插件。

只需删除插件或软件即可。无论如何,您网站的访问者可能已经安装了该软件。

【讨论】:

  • 是的,我也这样做 - 讨厌那个。
【解决方案6】:

我不知道有任何 PHP 或 JavaScript 代码可以从电话号码中删除 Skype 图标: 但是有几种方法可以阻止 Skype 突出显示(即删除 Skype 图标)电话号码:

从开发人员的角度来看,您可以:

  1. 使用 HTML:软连字符
  2. 使用 CSS
  3. 或使用元标记

从用户的角度来看,用户可以:

  1. 从浏览器禁用或卸载 Skype 插件。 (见comment

更多详情请查看参考:How To Prevent Skype from Highlighting Phone Numbers

【讨论】:

  • 欢迎来到 Stack Overflow!虽然理论上可以通过链接回答问题,但您应该include the essential parts of the answer here,并提供链接以供参考(就像您在编辑后所做的那样)。您的原始答案只有一个链接,这就是它被删除的原因。
【解决方案7】:

卸载 Skype 看看是否有变化。

Skype 通常会与您的浏览器交互,并为电话号码添加自己的格式。

【讨论】:

    【解决方案8】:

    以下是必须在代码中实现的步骤。

    第 1 步: 在页面头部添加元标记和样式

    &lt;head&gt;

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

    &lt;style&gt;

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

    &lt;/style&gt;

    &lt;/head&gt;

    第 2 步: 将您的号码包含在 &lt;span&gt; 中,例如:

    &lt;span&gt;123-&lt;/span&gt;&lt;span&gt;123-1234&lt;/span&gt;

    这对我有用。 :)

    【讨论】:

      【解决方案9】:

      浏览器上的电话号码显示为带有 Skype 图标

      不,他们不是。某些浏览器可能对此具有特定功能。或者,它可以由为页面提供服务的站点来实现。在前者的情况下,您需要提供哪个浏览器的详细信息 - 无论如何它可能无法从服务器端控制。

      C.

      【讨论】:

        【解决方案10】:

        不需要任何复杂的东西,只需转到您的浏览器 -> 互联网选项 -> 程序 -> 管理插件,找到 Skype,点击拨打电话,然后禁用它。

        就是这样!

        【讨论】:

        • 这是 StackOverflow,一个编程站点。这个问题是从编写网站而不是运行浏览器的人的角度提出的。
        • 所以您希望每个互联网用户在加载您的网站之前都处理好这个问题?哇。
        猜你喜欢
        • 2011-04-14
        • 2021-11-05
        • 1970-01-01
        • 2011-02-17
        • 1970-01-01
        • 2018-05-25
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多