Skype号码识别

8
有没有可能通过一些html或javascript关闭skype号码识别?我不仅仅是想把它关掉只针对我的电脑,而是想让任何访问我的页面的人都看不到。我已经看过了...
<meta name="SKYPE_TOOLBAR" content="SKYPE_TOOLBAR_PARSER_COMPATIBLE" />

对于我来说,使用Firefox无法实现这个业务。我也看到评论说Skype 4.2不认识这个元标记。

这是一个非常棘手的问题,因为Skype将表格中的数据识别为电话号码。例如,带有两个角度符号的行

00 23 58 17 45 00

在乍得被识别为电话号码!

我知道我可以添加一些不可见的废物来隐藏这些数字,但是它们有很多,而且很丑陋。


在Firefox中对我可行。 - Shard
6个回答

4
您可以始终添加以下CSS:
#skype_pnh_container, #skype_plugin_object, #skype_highlighting_settings {
    display: none !important;
}

3
我在互联网上看到了许多可能的JavaScript解决方案、元标签、CSS等技术方案,也许我找到了一种可行的黑客方法用于我的网站。我在一些电脑上测试过它,它有效,并且我认为只要Skype不改变其代码,它就会持续发挥作用。
我想知道Skype在我们的页面上究竟做了什么,它围绕电话号码创建了一些标记,就像你之前说的那样,但它甚至在文档结束标记后的标记之后添加了一个<object>标记。
而这里我看到了诀窍!就在该对象之前,有一个配置标记:
<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版本,目前它对我有效,如果它对你也有效,请让我知道并分享它 :)


3
是的,这是可能的。您需要在HTML代码中拆分号码,以使其不被视为整体。可以使用零宽度空格或透明图像等内容进行分隔。甚至将路由代码和号码包装在单独的span标签中可能已经足够了,或者更好的是浮动左侧div标签......我没有安装Skype,所以你必须自己试试,但这是正确的方法。
更新: 您也可以查看生成的HTML代码,并使用JavaScript代码删除它,但效率低下且不必要。
解决方案:似乎只需使用软连字符字符 ­ 就足够了。
这里有一篇文章介绍了这个问题的解决方法:http://www.ambrosite.com/blog/hide-phone-numbers-from-skype-using-the-html-soft-hyphen

跨度没有效果。div会导致新的一行。 - Mike D
我说浮动的div - 然后看看我添加的链接。 - The Surrican

1

我会尝试添加CSS:

span.skype_pnh_container {
  display: none !important;
}

不幸的是,我无法在Firefox中使工具栏正常工作,而IE的开发人员工具也无法满足我的需求。如果它不起作用,我会尝试在页面加载后通过JavaScript添加它。


我添加了这个CSS脚本,并用<span class=skype_pnh_container> ... </span>包含了整个body。唯一的效果是关闭了段落之间的换行。 - Mike D
span.skype_pnh_container 是 Skype 链接的格式。您不需要添加一个。 - Tom Smilack
你的意思是我不应该在 body 周围添加一个 span 吗?另外,我已经使用了 JS,但我是一个真正的新手。我该如何使用 JS 将定义添加到我的 <head> 中呢? - Mike D
不要添加任何<span>标签</span>,只需将以下内容放在<head>标签中:<script type="text/javascript" src="http://code.jquery.com/jquery-1.4.2.min.js"></script><script type="text/javascript">$(document).ready(function() { $('.skype_pnh_container').css('display', 'none !important'); })</script> - Tom Smilack
好的,我把这些行放在<head>和</head>之间,但Skype的东西仍然显示出来。是不是<body onload....>调用函数或者ready等同于它? - Mike D

0

针对这个问题提供的所有解决方案都已经失效,或者不够高效。以下CSS代码可以非常有效地移除Skype点击通话按钮。

body span[class ^= "skype_pnh_print_container"] {
    display: inline !important;
}

body span.skype_pnh_container {
    display: none !important;
}

0

这样更好。你有什么想法为什么前两个数字被删除而第三个和第四个没有?我更喜欢关闭所有识别。 - Mike D

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接