【发布时间】:2015-11-08 21:15:01
【问题描述】:
我正在将 html 网页从 url 加载到 webview...而且我有 Seekbar... 在更改它应该增加或减少它的字体大小......但我无法成功...... 此外,textColor 和背景颜色也不起作用...除此之外,更改正文文本也起作用...
我做了什么?
无效的代码
loadUrl("javascript:(document.body.style.backgroundColor ='red');");
loadUrl("javascript:(document.body.style.fontSize='20pt');");
loadUrl("javascript:(document.body.style.color ='yellow');");
有效的代码
loadUrl("javascript:(document.body.innerHTML ='test');");
在 seekbar 改变后,上面的代码改变了整个 webview。
所以,我知道加载互联网 url 到 webview 以加载 javascript 是可行的,但样式效果不是。我在想加载的 url 子元素会覆盖父元素,所以这样做
loadUrl("javascript:(var elements = document.getElementsByTagName(\"*\");" +
"for (var i=0; i < elements.length; i++) \n" +
"{ \n" +
" elements[i].style.fontSize ='30rem';\n" +
"}" +
");");
效果不佳
可能有什么问题??
更新
@tiny 阳光说 test on desktop chrome 之后,我在想,子元素覆盖问题
var elements = document.getElementsByTagName("*")
for (var i=0; i < elements.length; i++)
{
elements[i].style.fontSize ='20pt'
}
在桌面 chrome 上工作。但在android中它有不同的字符串文字语法原因并且不起作用..
webview.loadUrl("javascript:(var elements = document.getElementsByTagName(\"*\")\n" +
" for (var i=0; i < elements.length; i++) \n" +
" { \n" +
" elements[i].style.fontSize ='20pt'\n" +
" });");
【问题讨论】:
-
getSetting().enabejavascript(true)
-
请仔细阅读我说 loadUrl("javascript:(document.body.innerHTML ='test');");有效,所以这意味着我启用了 javascript .....!!! getSettings().setJavaScriptEnabled(true);
-
您确定您的代码可以在 chrome 上运行吗?
-
尝试在 chrome 上测试
-
webview.getSettings().setTextSize() 更改 TextSize。 webview.setBackgroundColor(0) 改变背景。
标签: javascript android webview