0
我正在写一个JavaScript注入,以显示在自定义CSS字体一些文本(一些更换后)新的CSS规则到Android浏览器页面。注入CSS规则到页面中Android浏览器
这里是我试图注入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规则的代码或请建议一些其他的方式来做到这一点
感谢
更新:!我在Android 2.2的模拟这种支持CSS字体。
是,Android的2.0和2.1不支持CSS的字体。但我在Android 2.2的其中支承实仿效此ts CSS字体。因此,我应该能够以某种方式做到这一点。 – Dhanika 2010-10-16 15:34:15
我没有安装2.2 SDK,但如果我在Chromium中测试您的示例,它也不起作用。但是,如果我将css分成两个变量,每个规则一个(var css1 ='@ font-face {...}'; var css2 ='si {...}';)。似乎您可以使用insertRule一次仅插入一条规则。 – Daniel 2010-10-16 16:52:58