android webview javascript不执行,WebView中的JavaScript为什么不执行?
浏览器未开启javascript
使用的js代码有问题,webview不兼容该代码。
1) 第一个坎:WebSettings
WebSettings webSettings = mWebView.getSettings();
webSettings.setJavaScriptEnabled(true);
2) 第二个坎: 有物
在运行脚本前,要有document对象,至少得load一个空白页
webView.loadData(“”,"text/html","UTF-8");
3)第三个坎: 异步
如果这么写是没戏的,因为第一个还没执行完呢
webView.loadData(“”,"text/html","UTF-8");
webView.loadUrl("javascript:alert('hello')");
解决这个问题。可以1)从界面按钮调用 2)延时调用。 3)在onPageFinished中调用
mWebView.setWebViewClient(new MyWebViewClient());
private class MyWebViewClient extends WebViewClient {
@Override
public void onPageFinished(WebView webView, String url) {
webView.loadUrl("javascript:"+script);
}
}
4)第四个坎:console/alert
以上三点完成后,js已经可以执行,可是为什么看不到console.log和alert呢?因为这2个要额外实现
mWebView.setWebChromeClient(new MyWebChromeClient()); //optional, for show console and alert
private class MyWebChromeClient extends WebChromeClient {
@Override
public boolean onConsoleMessage(ConsoleMessage cm) {
Log.d("test", cm.message() + " -- From line "
+ cm.lineNumber() + " of "
+ cm.sourceId() );
return true;
}
@Override
public boolean onJsAlert(WebView view, String url, String message, JsResult result) {
Toast.makeText(mContext, message, Toast.LENGTH_SHORT).show();
return true;
}
}
android webview javascript不执行,WebView中的JavaScript为什么不执行?相关推荐
- 读《Javascript高级程序设计》中的javascript事件处理程序(事件侦听器)心得
今天读了<Javascript高级程序设计>中的javascript事件处理程序(事件侦听器)部分的内容,总结一些自己的心得: 事件就是用户或者浏览器自身执行的某种动作.例如click . ...
- JavaScript概述和HTML中嵌入JavaScript的三种方式
"成功没有捷径,脚踏实地一步一个脚印,该来的总会来,不好高骛远,不急功近利,付出总会有回报,不管处于哪个阶段,都要一步一个脚印,踏实的走好每一步!" 目录 01.JavaScrip ...
- JavaScript笔记(二)——HTML中的JavaScript
JavaScript笔记(二) 读书笔记 HTML中的JavaScript 内容概要 2.1 <\script\>元素 2.1.1 标签位置 2.1.2 推迟执行脚本 2.1.3 异步执行 ...
- php中如何调用javascript,如何在php中调用javascript代码?
JavaScript是客户端脚本语言,PHP是用于与数据库交互的服务器端脚本语言.那么如何在php中调用javascript代码?下面本篇文章给大家介绍一下.有一定的参考价值,有需要的朋友可以参考一下 ...
- JavaScript函数调用方式:简单调用+在超链接中调用JavaScript函数+在事件中调用JavaScript函数
简单的调用 <html> <head> <meta http-equiv="Content-Type" content="text/html ...
- MySQL执行计划中,ID值表明执行次序
id值表明的执行次序的问题 ---参见: http://blog.163.com/li_hx/blog/static/18399141320146219354154/ ---关于id值与执行关系: 结 ...
- 在Chrome 中调试Javascript
在前面的两篇文章中我们讲了如何在IE中调试Javascript和在Visual Studio中调试Javascript,在本篇内容中,我们讲一下如何在谷歌 Chrome中调试Javascript. C ...
- 未定义函数或变量_变量提升:JavaScript是顺序执行,为什么变量在定义之前执行不会报错而是报Underfined...
showName() console.log(myname) var myname = 'hhh' function showName() {console.log('函数showName被执行'); ...
- 将JavaScript集成到QML中
将JavaScript集成到QML中 将JavaScript集成到QML中 使用JavaScript表达式获取属性值 在QML中添加JavaScript函数 使用JavaScript文件 将JavaS ...
- JavaScript权威指南 第11章JavaScript标准库
JavaScript权威指南 第11章JavaScript标准库 第11章 JavaScript标准库 11.1 集合与映射 11.1.1 Set类 11.1.2 Map类 11.1.3 WeakMa ...
最新文章
- C++拾取——Linux下实测布隆过滤器(Bloom filter)和unordered_multiset查询效率
- 这老哥把GPU当暖气用,省钱了
- lstm处理时序数据结构图_详解LSTM
- 深度学习时代的图模型,清华发文综述图网络
- Centos 6.4 python 2.6 升级到 2.7一起的MySQLdb不能使用的解决问题
- SAP直接踢人下线 SM04
- 字符串系统函数strstr strrchr [5.3有版本不同]
- 装修弱电箱,路由器和交换机该怎么放?
- 黑客伦理(hacker ethic)--《黑客与画家》
- 博观而约取,厚积而薄发
- 安装nodejs时:The error code is 2503.
- 台式linux系统安装,LINUX安装方法
- 驱动程序是如何驱动硬件的?
- Entire Space Multi-Task Model: An Effective Approach for Estimating Post-CVR (ESSM)
- Ubuntu linux ls 看到目录文件夹绿色高亮问题
- matlab求圆的共切线,Matlab或Python怎么作出两个圆的公切线
- MT6737芯片技术资料集锦下载
- 【Computer Graphics】向量投影
- SolidWorks_画螺杆
- English-国内三大翻译证书比较
热门文章
- Spring 3.1 –从数据库加载XML配置的属性
- Spring线程池服务
- 小米路由器4Q的设置
- asp.net html2canvas,Vue 结合html2canvas和jsPDF实现html页面转pdf
- kali linux wifi监听模式,无线渗透教程1:监听无线网络
- 同时防服务器维修,加强服务器日常运维,避免宕机灾难发生
- java socket优化_Java Socket编程代码优化
- c 中头文件和源文件的区别是什么
- 计算机组成原理唐朔飞课后答案第六章,计算机组成原理第六章部分课后题答案(唐朔飞版)...
- python高手之路第三版_《Python高手之路(第3版)》——1.3 版本编号-阿里云开发者社区...