【Android实测】WebView的JS注入
来源:互联网 发布:微信转换淘宝链接 编辑:程序博客网 时间:2024/05/16 06:32
今天有个傻逼要做一个功能,webview加载页面判断是指定页面,就跑一段js给这个页面上的某个控件赋个焦点。其实就是loadUrl方法调两次就好了,但是我之前想错了,我以为每次loadUrl都会把上一个页面刷过去,然而测试发现下一次loadUrl里放某些js是不会把页面改变掉的。
嗯,我蛋花的原话是:“Js里只要不涉及跳转或链接都不会覆盖第一个链接”。
蛋花的CSDN账号是啥?
讲测试。
首先需要一个html页面,假装这是第三方:
<html><head><meta charset="UTF-8"><title>Hello,JS</title></head><body><style type="text/css"> .btn { color: white; background-color: #008aa6; padding: 0px 1em; height: 22px; margin-left: 10px; border: 0px solid black; border-radius: 5px; } .btn:hover { background-color: #ff0000; } .btn:focus { background-color: #00ff00; } /*active 要在后面 否则会被hover覆盖*/ .btn:active { background-color: #000000; } </style><p>hello world 喵</p><button type="button" id="btn_1" class="btn">Click Me! 1</button><button type="button" id="btn_2" class="btn">Click Me! 2</button><button type="button" id="btn_3" class="btn" onclick="alert('11111')">Click Me! 3</button><button type="button" id="btn_4" class="btn">Click Me! 4</button></body></html>
然后就是安卓这边,写一个只有一个webview的页面做测试,第一个loadUrl写在要加载页面的地方,我的写在了onCreate:
@Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.layout_webview); w = (WebViewSupportJS) findViewById(R.id.webviewSupportJS); w.loadUrl(http://192.168.8.111:8080/webpage/helloJS.html); }
然后是第二个loadUrl,考虑到需求是给页面赋焦点,那么就放在了webview的页面加载完成的时候。我这边是自定义WebView中设置了WebViewClient:
// 设置支持JS getSettings().setJavaScriptEnabled(true); setWebViewClient(new WebViewClient() { @Override public boolean shouldOverrideUrlLoading(WebView view, String url) { return false; } @Override public void onPageFinished(WebView view, String url) { // TODO Auto-generated method stub super.onPageFinished(view, url);// loadUrl("javascript:alert('hi')"); loadUrl("javascript:var div = document.getElementById(\"btn_3\");\n" + " div.focus();"); } });
测试发现div.focus();
并没有粗线触发点击事件的情况,23333,果然html相关一概不熟啊。
嗯……真机效果图?
Intelligent Point ! Give me five !
阅读全文
0 0
- 【Android实测】WebView的JS注入
- Android WebView JS的注入
- Android webview 注入JS
- Android WebView的Js对象注入漏洞解决方案
- Android WebView的Js对象注入漏洞解决方案
- Android WebView的Js对象注入漏洞解决方案
- Android WebView的Js对象注入漏洞解决方案
- Android WebView的Js对象注入漏洞解决方案
- Android WebView的Js对象注入漏洞解决方案
- Android WebView的Js对象注入漏洞解决方案
- Android WebView的Js对象注入漏洞解决方案
- Android WebView的Js对象注入漏洞解决方案
- Android WebView的Js对象注入漏洞解决方案
- Android WebView的Js对象注入漏洞解决方案
- Android WebView的Js对象注入漏洞解决方案
- Android WebView的Js对象注入漏洞解决方案
- Android WebView的Js对象注入漏洞解决方案
- Android WebView的Js对象注入漏洞解决方案
- 数据结构与算法1.概念及术语
- Nginx安装
- 栈的应用之表达式求值(二)
- C# WinForm 中 MessageBox的使用详解
- Netty实现长连接简单例子
- 【Android实测】WebView的JS注入
- Android 在Service中弹出窗口及SYSTEM_ALERT_WINDOW权限解决方法
- LeetCode 169. Majority Element
- 343. Integer Break 题解
- HTML 颜色色号
- hdu3613(Manacher)
- 不能将CSV复制到postgreSQL表中:列不接受空字符串
- document常用方法
- python mysql 1366, u"Incorrect string value: '\\xF0\\x9F\\x98\\x8A' for column 'content' at row 1"