防止Internet Explorer 10移动版创建电话和地址链接

3
有没有一种方法可以防止IE 10移动版创建电话和地址链接。类似于:<meta name="format-detection" content="telephone=no">的方法。

1
尝试输入类似于(555)<span>&nbsp;</span>555-5555的内容,或者插入一个随机的不可打印字符,例如&#65279;。我不会将其发布为答案,因为我无法测试它并且认为这不是一个好的解决方案。 - Wesley Murch
1
为什么你不想让别人给你打电话或添加你为联系人?为什么不取消发布这些信息呢? - Rich Bradshaw
2
@RichBradshaw:有些号码是传真号码,我们正在尝试防止用户拨打这些号码。 - abhay440
2
当这个功能破坏了你的页面设计和布局时,它是非常讨厌的。你没有办法为这些链接设置样式;标准的CSS似乎不起作用,所以有一个非常好的理由想要禁用它们。我宁愿一开始就没有这些链接,而不是它们的存在破坏我的整个布局 - 用户看到它会认为布局很糟糕/破碎,而不是有一些链接被插入。最终你会看起来像个白痴。 - Josh E
@JoshE 我在我的答案中发布了一个解决方案。 - hexalys
显示剩余5条评论
2个回答

4

<meta name="format-detection" content="telephone=no"> 在IE11中似乎运行良好。

虽然我在IE10 Metro/Modern WIN8中没有看到任何电话号码自动检测,但我想它在IE10移动版上确实可以(这对手机来说很合理)。由于我无法测试,我会相信您的话...

话虽如此,您可以使用以下样式将传真号码(888) 999-666进行特定的格式化:

(888) 999<span style="letter-spacing:-1em">-</span>-6666

双破折号可以防止格式检测。我在IE11 Metro/Modern WIN8.1上进行了测试。
虽然这种方法有些hackish,但电话号码的视觉样式几乎不受影响,你只能看到一个破折号。我还尝试在window.load上通过JS删除双破折号,但没成功,所以破折号必须保留在DOM中。
Google搜索引擎可能会忽略它,也可能不会。但对于传真号码来说,这似乎是个小问题。

1

不太优雅的解决方案:将文本显示为实时渲染的图像。类似的方法也可用于避免电子邮件收割机获取联系信息。

对于 PHP,您可以尝试使用 GD 库。

以下示例来自 PHP.net 页面:

<?php
// Set the content-type
header('Content-Type: image/png');

// Create the image
$im = imagecreatetruecolor(400, 30);

// Create some colors
$white = imagecolorallocate($im, 255, 255, 255);
$grey = imagecolorallocate($im, 128, 128, 128);
$black = imagecolorallocate($im, 0, 0, 0);
imagefilledrectangle($im, 0, 0, 399, 29, $white);

// The text to draw
$text = 'Testing...';
// Replace path by your own font path
$font = 'arial.ttf';

// Add some shadow to the text
imagettftext($im, 20, 0, 11, 21, $grey, $font, $text);

// Add the text
imagettftext($im, 20, 0, 10, 20, $black, $font, $text);

// Using imagepng() results in clearer text compared with imagejpeg()
imagepng($im);
imagedestroy($im);
?>

这将输出: text as image
(来源: php.net) 当然,很多资源都被浪费了。

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