【发布时间】:2011-08-11 22:18:53
【问题描述】:
我知道这有点奇怪,但我在我的一个页面上使用了 Cufon,但如果用户按下按钮,我需要能够为所有元素关闭它。
现在我希望会有像 Cufon.Reset(selector) 之类的东西,但我找不到任何东西,那么有没有办法在不刷新页面的情况下将 Cufoned 文本转回标准文本?
【问题讨论】:
标签: javascript cufon
我知道这有点奇怪,但我在我的一个页面上使用了 Cufon,但如果用户按下按钮,我需要能够为所有元素关闭它。
现在我希望会有像 Cufon.Reset(selector) 之类的东西,但我找不到任何东西,那么有没有办法在不刷新页面的情况下将 Cufoned 文本转回标准文本?
【问题讨论】:
标签: javascript cufon
不这么认为。 Cufon 正在创建一个 img。所以在不刷新页面的情况下撤消它是不可能的。
你可以写一些脚本来:
我建议使用@font-face 而不是 Cufon- 在 IE、FF、Safari 上效果很好。 Chrome 可以说是 80% 的质量。
查看this website - 它使用@font-face 方法。工作完美。
【讨论】:
假设你所有的 H1 标签都是 cufont 样式的。要执行此操作,您将使用:
Cufon.replace('h1');
如果你想恢复 cufon 动作,你可以使用:
$('h1').each(function(){
$(this).find('cufon').each(function(){
$(this).replaceWith($(this).find('cufontext').text())
})
})
【讨论】:
var RemoveCufon = function (selector) {
$(selector).each(function (index, element) { $(element).text(BuildCufonTextString(element)); });
};
var BuildCufonTextString = function (parent) {
var elementText = "";
$("cufon cufontext", parent).each(function (index, element) { elementText += $(element).text(); });
return $.trim(elementText);
};
这是一种可行的手动方式,但想知道更简单的方法......
【讨论】:
我刚刚完成了实现此处讨论的脚本之一的更简单版本的整个过程,以便从 cufontext 标记中获取文本。它工作得很好:
var nameFromCufon = $(profileName).find('cufontext').each(function(){
$(this).replaceWith($(this).text())
})
ProfileName 是围绕 cufon 标签的直接父 span 标签。然后我尝试了一些非常简单的东西,太明显了: $(profileName).text();
.text 只给我去掉所有标记代码的文本。很简单。
【讨论】: