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