Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/redis/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何防止电话号码转换成Skype链接?_Javascript_Jquery_Html_Css_Skype - Fatal编程技术网

Javascript 如何防止电话号码转换成Skype链接?

Javascript 如何防止电话号码转换成Skype链接?,javascript,jquery,html,css,skype,Javascript,Jquery,Html,Css,Skype,在已安装的Windows计算机上,它倾向于将所有电话格式的号码转换为Skype链接,以便您可以单击它以便在Skype上拨打电话 问题是如何防止页面上的某个数字出现这种情况?尽量不要将数字作为单个文本输出。而不是 <span>888-555-1212</span> 888-555-1212 试一试 888-555-1212 它将禁用skype您也可以不使用该号码,用JS将其删除 jQuery(document).ready(function(){jQuery('.sk

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


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

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

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

888-555-1212

它将禁用skype

您也可以不使用该号码,用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'

更新

此答案不再准确-有关更多信息,请参阅


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


试试这个。它将电话号码中的空格替换为不可见的span+原始空格字符。因此skype无法理解这是一个号码,我们喜爱的电话号码保持不变:)我不得不使用这种方法,因为我通常让内容管理员随意更改电话号码,因此我不能在javascript中使用硬编码号码。当然,您的标记应该看起来像
您的数字,里面有一些空格

$(文档).ready(函数(){
如果($(“.phone_number”)。长度>0){
$(“.phone_number”)。每个(函数(){
$(this.html($(this.html().replace(/\s/g,“”));
});
}
});

我在interweb上看到了很多可能的解决方案—javascript解决方案、元标记、css,也许我发现了一个真正适用于我的网站的黑客,我在一些计算机上进行了测试,它可以工作,我想它会工作,直到skype不改变代码中的某些内容

我在查看skype在我们的页面上到底做了什么,它在电话号码周围创建了一些跨度,正如你已经说过的,但它甚至在文档末尾添加了一个标记,就在body closed标记之后

在这里我看到了诀窍!在该对象之前有一个配置标记:

<span id="skype_highlighting_settings" display="none" autoextractnumbers="1"></span>

这是由插件动态添加的!但在这里,解决方案变得显而易见,为了最终阻止skype干扰您的设计并避免更改电话号码,解决方案是在文档的早期插入以下标签:

<span id="skype_highlighting_settings" display="none" autoextractnumbers="0"></span>

注意AutoExtractNumber=“0”,这里是技巧。该文档无论如何都不会使用该标记进行验证,因为没有属性“AutoExtractNumber”,但我注意到,即使注释了:

<!-- <span id="skype_highlighting_settings" display="none" autoextractnumbers="0"></span> -->


就这样!从杂乱的插件中享受你的网页!您的网页仍将正确验证。希望它对你也有用!我已经在几台电脑上测试了3种不同的浏览器和2种不同的skype版本,现在它对我有效,让我知道它是否也对你有效,如果有效,请与我共享:)

我在数字的第一个学期添加了一个空格

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


当然:可能看起来很奇怪,但它工作起来很简单。

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

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

self.viewController.webView.dataDetectorTypes = UIDataDetectorTypeNone;

-(BOOL)应用程序中的AppDelegate.m内部:(UIApplication*)应用程序没有使用选项完成启动:(NSDictionary*)启动选项编辑:抱歉,我刚刚发现IE9与此解决方案有问题,因为它不支持软连字符。

此问题有一种替代解决方案:

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

<span>0664 111 222 3</span>
06641112223
改为

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

高兴点:)

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

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

Skype已经开始在span标签的末尾添加随机生成的数字字符串,因此Groo的上述响应不再完全准确。要正确选择页面上的所有Skype标记,请使用CSS3通配符选择器,如下所示:

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

^=
操作符会使属性选择器处理包含以“skype\u pnh\u container”和“skype\u pnh\u print\u container”开头的值的类的元素。

您需要做的就是确保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 {...}

官方的解决方案是在网页的头部添加以下元标记。这将阻止skype对电话号码进行任何重新格式化


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

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


AFAIK它是浏览器中的一个插件。转到“扩展”页并禁用/卸载它。不可修改设置或浏览器配置。我正在寻找一种中断或绕过Skype转换脚本的方法。@Zeiss我认为他的意思是通过使用JavaScript,从而使页面能够禁用Skype的损坏功能……这是一个很好的问题。skype处理的链接有点重,在狭小的空间中可能会导致格式问题。禁用电话号码是件好事吗?我想知道……@Yuval:我不是刚给你写信吗?()@Yuval:但是你看到相似之处了吗?我用这个方法做了一个快速插件,有些人可能会觉得有用。这只适用于有限数量的数字。@Ck:我是
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 {...}
<a href="tel:+18001234567">1 800 123 4567</a>