我正在从网址加载html webside到webview ...而且我有Seekbar ... 在改变它应该增加或减少它的fontSize ...但我不能成功... 此外,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');");
上面的代码在搜索栏改变后改变了整个webview。
所以,我理解加载互联网网址到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阳光说测试桌面铬后,我在想,子元素覆盖问题
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" +
" });");
答案 0 :(得分:1)
我通过一招来实现它。
很容易,你可以尝试改进它。
String b = "javascript:alert(document.getElementsByTagName(\"*\")["+0+"].style.backgroundColor=\"yellow\");";
StringBuilder sb = new StringBuilder(b);
for(int i = 0;i<100;i++){
sb.append("alert(document.getElementsByTagName(\"*\")["+i+"].style.backgroundColor=\"yellow\");");
}
a.loadUrl(sb.toString());