我正在编写一个 JavaScript 来将新的 CSS 规则注入到 Android 浏览器的页面中,以便以自定义 CSS 字体显示一些文本(经过一些替换)。
以下是我尝试注入 CSS 规则的方法:
var css = '@font-face {font-family:"font"; src:url(http://www.example.com/font.ttf);} si{font-family:"font"}';
if(document.getElementsByTagName("style")[0]){
var style = document.getElementsByTagName("style")[0];
} else {
var style = document.createElement("style");
style.type = "text/css";
document.getElementsByTagName("HEAD")[0].appendChild(style);
}
var sheet = style.sheet;
sheet.insertRule(css, sheet.cssRules.length);
然后使用 JavaScript XPath 实现替换文本。替换线在此模型中:
text = text.replace(/\'/g, "<si>♥</si>");
文本替换完美发生。但是注入 CSS 规则部分不起作用。被替换的文本只是显示为<si>♥</si>
(也打印了标签)。:(
任何人都可以更正我的注入 CSS 规则的代码,或者请提出其他方法来做到这一点。
谢谢!
更新:我在支持 CSS 字体的 Android 2.2 中模拟它。