打开javascript库,执行与symbolset相同的操作
我正计划创建自己的符号字体,用于我的网站,我最初打算使用连字和OT,但支持最多是零碎的,并且不存在于较旧的浏览器,尤其是IE(我知道,这让我大吃一惊)。然后我开始仔细观察它是如何工作的。它实际上相当聪明,虽然我可以很容易地更改几个数组变量并使用它,但javascript是专有的,未经允许我不能使用它。我希望能够创建我自己的符号字体和符号集,但我需要一个开放的javascript文件来实现这一点。有没有开放的jQuery插件或javascript库可以这样做?我发现了这个。基本上,它遍历dom,并用连字替换已知的字母组合。我已修改脚本,以便在可用时使用本机连字支持:打开javascript库,执行与symbolset相同的操作,javascript,jquery,fonts,symbols,opentype,Javascript,Jquery,Fonts,Symbols,Opentype,我正计划创建自己的符号字体,用于我的网站,我最初打算使用连字和OT,但支持最多是零碎的,并且不存在于较旧的浏览器,尤其是IE(我知道,这让我大吃一惊)。然后我开始仔细观察它是如何工作的。它实际上相当聪明,虽然我可以很容易地更改几个数组变量并使用它,但javascript是专有的,未经允许我不能使用它。我希望能够创建我自己的符号字体和符号集,但我需要一个开放的javascript文件来实现这一点。有没有开放的jQuery插件或javascript库可以这样做?我发现了这个。基本上,它遍历dom,并
// ligature.js v1.0
// http://code.google.com/p/ligature-js/
// with modifications by sabof
var ligature = (function() {
var testDiv = document.createElement('div'),
nativeLigatureSupport = testDiv.style.textRendering !== undefined;
if (nativeLigatureSupport) {
return function (node, extended) {
if (!node) {
ligature(document.body, extended);
} else {
node.style.textRendering = 'optimizeLegibility';
}
}
}
return function(node, extended) {
if (!node) {
ligature(document.body, extended);
} else {
if (node.nodeType == 3 && node.parentNode.nodeName != 'SCRIPT') {
node.nodeValue = node.nodeValue
.replace(/ffl/g, 'ffl')
.replace(/ffi/g, 'ffi')
.replace(/fl/g, 'fl')
.replace(/fi/g, 'fi')
.replace(/ff/g, 'ff')
.replace(/ij/g, 'ij')
.replace(/IJ/g, 'IJ');
if (extended) {
node.nodeValue = node.nodeValue
.replace(/ae/g, 'æ')
.replace(/A[Ee]/g, 'Æ')
.replace(/oe/g, 'œ')
.replace(/O[Ee]/g, 'Œ')
.replace(/ue/g, 'ᵫ')
.replace(/st/g, 'st');
}
}
if (node.childNodes) {
for (var i=0; i < node.childNodes.length; i++) {
ligature(node.childNodes.item(i), extended);
}
}
}
};
}());
//ligature.js v1.0
// http://code.google.com/p/ligature-js/
//经sabof修改
变量连字=(函数(){
var testDiv=document.createElement('div'),
nativeLigatureSupport=testDiv.style.textRendering!==未定义;
if(nativeLigatureSupport){
返回函数(节点,扩展){
如果(!节点){
连字(document.body,扩展);
}否则{
node.style.textRendering='优化易读性';
}
}
}
返回函数(节点,扩展){
如果(!节点){
连字(document.body,扩展);
}否则{
if(node.nodeType==3&&node.parentNode.nodeName!='SCRIPT'){
node.nodeValue=node.nodeValue
.替换(/ffl/g,'freeful')
.替换(/ffi/g,“ffi”)
.更换(/fl/g,‘fl’)
.替换(/fi/g,“fi”)
.替换(/ff/g,“ff”)
.替换(/ij/g,“ij”)
.替换(/IJ/g,“IJ”);
如果(扩展){
node.nodeValue=node.nodeValue
.替换(/ae/g,“æ”)
.替换(/A[Ee]/g,“Æ”)
.替换(/oe/g,“œ”)
.替换(/O[Ee]/g,“Œ”)
.替换(/ue/g,'ᵫ')
.替换(/st/g,“st”);
}
}
if(node.childNodes){
对于(var i=0;i
你的意思是你想要连字,你想要网站上的符号以字体呈现,或者你想要连字以使文本显示为图标,但仍然是可复制粘贴的?我很想直接使用连字,但IE9及更高版本不支持它们,一些浏览器也有问题。忽略上面的评论,I c不能再编辑它了。后者。我想直接使用连字,但IE9和更早版本不支持,一些浏览器也有问题。SymbolSet使用javascript获取存储在OTF文件的私有unicode部分中的图标,因此不能处理连字的旧浏览器仍然能够匹配相同的键您用于连字的ord。例如,我可能有一个用于电子邮件的连字(e_m_a_I_l.liga)和一个专用unicode字符(u+2709)使用.js文件通过数组将“email”链接到“u+2709”。实际上,symbolset仍然需要@font-face,因此它只能在IE>=9上工作。symbolset提供EOT文件,因此它可以与IE的旧版本一起工作。我真正关心的是IE9+,但在IE9中不存在连字支持,因此我需要一个类似于symbolset的.js解决方案。这这就是最初开始的地方。是否有一个开放的js库可以做同样的事情?