2010-10-16 64 views
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字體。

回答

1

@字體面似乎在Android 2.0和2.1(bug tracker)被打破。

+0

是,Android的2.0和2.1不支持CSS的字體。但我在Android 2.2的其中支承實仿效此ts CSS字體。因此,我應該能夠以某種方式做到這一點。 – Dhanika 2010-10-16 15:34:15

+0

我沒有安裝2.2 SDK,但如果我在Chromium中測試您的示例,它也不起作用。但是,如果我將css分成兩個變量,每個規則一個(var css1 ='@ font-face {...}'; var css2 ='si {...}';)。似乎您可以使用insertRule一次僅插入一條規則。 – Daniel 2010-10-16 16:52:58

相關問題