标签:code-injection external javascript android
我试图将我的外部JS文件(包含在资产目录中)注入WebView,然后再调用它.
这是我用来注入它的代码:
webView.setWebViewClient(new WebViewClient() {
@Override
public void onPageFinished(WebView view, String url) {
super.onPageFinished(view, url);
webView.loadUrl("javascript: (function() { "
+ "var script=document.createElement('script');"
+ "script.type='text/javascript';script.src='file://android_asset/js_demo.js';"
+ "document.getElementsByTagName('head').item(0).appendChild(script);"
+ "})()");
webView.loadUrl("javascript: jsDemo()");
}
});
当我打印Web视图的全部内容时,可以看到确实插入了带有src =’file://android_asset/js_demo.js’的脚本标签,但是调用函数jsDemo却无济于事.
注意:函数jsDemo包含在js_demo.js中,并且没有任何智能操作,只是更改了一些跨度的颜色.自从我在浏览器中测试它以来,它就可以正常工作.
我坚信我在给js文件提供路径时出错,但是我不确定如何更改它才能使其正常工作.任何帮助将不胜感激.
解决方法:
为什么不读文件并直接通过loadUrl(“ javascript:…)执行它呢?
标签:code-injection,external,javascript,android 来源: https://codeday.me/bug/20191023/1912920.html
本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享; 2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关; 3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关; 4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除; 5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。