使用loadUrl运行javascript加载不同的页面

时间:2014-11-21 15:48:34

标签: javascript android webview

我们有一个使用oauth表单的应用程序,仅用于开发目的我想要消除用户名和密码的输入,所以我在页面加载时添加了一些这样的代码:

mWebView.loadUrl("javascript:document.getElementById('UserName').value='" + txtUser.getText()+"'");

但由于某种原因,它没有填写表单,它会创建一个新页面并只写出txtUser的值而不是填写输入字段?为什么以及如何解决这个问题?

2 个答案:

答案 0 :(得分:2)

如果你看一个工具看起来Squirt它会做一个匿名函数调用。所以我并不精通javascript,但匿名调用似乎是浏览器看到它的关键,因为当前页面正在进行调用。所以试试粗略

mWebView.loadUrl("javascript:(function(){document.getElementById('UserName').value='" + txtUser.getText()+"';})()");

答案 1 :(得分:0)

我遇到了类似的问题,因为我无法找到合适的解决方案,所以我使用了以下黑客 -

  1. 获取html源文本。
  2. </body>标记替换为</body><script>YOUR JS CODE</script>
  3. webview.loadDataWithBaseURL(url,editedString,&#34; text / html&#34;,&#34; UTF-8&#34;,null);
  4. 对于hacky解决方案感到抱歉,但是如果找不到解决方案,这可能会有所帮助:)