做html页面小说阅读器时,发现更改webview的字体后,原来的位置不见了,因此想从js入手,改变字体大小后也能回到原来位置
具体做法:
先初始化webview 以及websettings,我在外部做了几个按钮,用来改变字体大小,调用的代码如下;
String js1 = " index = 0;\n"
+ " nearIndex = null;\n"
+ " var scrollTop = document.body.scrollTop;\n"
+ " var tags = document.getElementsByTagName(\"body\")[0].children;\n"
+ " getNearIndex(tags, scrollTop);\n";
String js = "var d = document.getElementsByTagName('body')[0];\n"
+ " d.style.fontSize = '" + font_size + "px';\n";
String js2 = " indexTemp = 0;\n"
+ " skipScroll(tags, nearIndex);\n";
mWebView.loadUrl("javascript:(function(){" + js1+js+js2 + "})()");
SPUtils.setInt(UIUtils.getContext(), "mobifont", font_size);
这是通常的js做法,我刚开始是直接用js那一句,改变字体大小会发生变化,所以我现在加了两句 js1 +js2
还有一步你需要在初始化过程之前(加载html之前),提前给html写入一段js进去 如下:
final String path = UIUtils.getAppFile() + dirname + "/jingjing.html";
String comment = mobi.openMobi(mFilePath + mFileName, dirname);
//解决打不开的mobi情况 1.''是代表c解析不了的格式,?J是代表乱改后缀的格式
if (comment.equals(""))
comment = "?J";
if (!comment.equals("?J")) {
//js代码
String result = comment.replace("