簡體   English   中英

通過 android 中的 javaScript 更改 webView 字體系列

[英]change webView font-family via javaScript in android

我正在開發一個Epub 閱讀器應用程序。 我需要在我的應用程序中添加更改字體工具。 我的JavaScript方面有問題。

我的應用程序打開不同的 Epub 文件,因此我無法預測Epub HTML,CSS 文件內容

我的 function 適用於沒有font-family屬性的元素,並且它不影響可能具有font-family屬性的元素,例如pbodyh標簽。

更改字體function

 function changeFont(fontIndex) { var fontFamilyValues = ["aldhabi.ttf", "b_nazanin.TTF", "b_nazanin_outline.ttf", "iransanse_mobile.ttf"]; var newStyle = document.createElement('style'); var font=fontFamilyValues[fontIndex]; var fontUrl="file:///android_asset/fonts/"+font; var fontName=font.substring(0,font.lastIndexOf('.')); newStyle.appendChild(document.createTextNode("@font-face{ font-family:"+fontName+";src: url("+fontUrl+");}")); document.head.appendChild(newStyle); newStyle.appendChild(document.createTextNode("*{font-family:"+fontName+";}")); }

內聯樣式覆蓋<style>塊(並且樣式塊覆蓋外部 css 文件)。 所以你必須首先刪除內聯 styles :

$("*").css('font-family', '');

或使用純 javascript:

 var all = document.getElementsByTagName("*");
 for (var i=0; i < all.length; i++) 
 {    
     all[i].style.removeProperty('font-family');
 }

強迫你的新風格超越你也可以應用的一切:在你的 styles 上很重要,如下所示:

newStyle.appendChild(document.createTextNode("*{font-family:"+fontName+" !important;}"));

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM