4

简而言之,一个以编程方式填充了电话号码的文本区域,并安装了 Skype 插件,会产生突出显示的标签。

因此,

(418) 555-1234

变成

begin_of_the_skype_highlighting (418) 555-1234 end_of_the_skype_highlighting

如果将该字符串放在 textarea 中,Skype 突出显示将再次封装它,A​​d infinitum

你如何防止这种情况发生?

4

3 回答 3

9

你应该看看http://forum.skype.com/index.php?showtopic=96959&st=0

看起来这是一个报告的错误,但直到现在才解决。

建议使用元标记(这似乎不适用于所有 Skype 插件

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

引入一个不可见的字符,它将破坏用于识别电话的 Skype 算法

+123 456<span style="display:none;">_</span> 789

不要认为这可以与 textareas 一起使用

当然,如果问题在于您自己对该页面的访问,请禁用该插件。


更新

检查http://www.jsfiddle.net/gaby/Qy7uw/中的两个示例中的任何一个是否有效。(我没有Skype可以检查

我正在使用零宽度连接器&zwj;和熟悉的&nbsp;

于 2010-11-24T16:59:12.547 回答
1

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

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

编辑Skype 已经开始为课程添加唯一编号,您可以使用新的 Css 3 选择器来解决它:

span.skype_pnh_container {display:none !important;}
span.skype_pnh_print_container, span[class^="skype_pnh_print_container"] {display:inline !important;} 
于 2011-03-30T09:32:09.623 回答
0

丑陋的 hack,尚未尝试过,但是可以在每个可打印字符之间使用不可打印字符生成进入 textarea 的文本。虽然可能会损坏特殊编码...

于 2010-11-24T17:46:20.793 回答