Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/471.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript UIwebview中的CSS注入_Javascript_Android_Css_Uiwebview_Webview - Fatal编程技术网

Javascript UIwebview中的CSS注入

Javascript UIwebview中的CSS注入,javascript,android,css,uiwebview,webview,Javascript,Android,Css,Uiwebview,Webview,我试着用下面的例子;我正试图为我父母的网站www.baomoi.com使用一个定制的css文件,以使其更加简洁和高对比度。此代码示例在加载时导致力闭合。我在/Resources文件夹中有styles.css。我如何确定导致错误的位置 提前感谢大家的帮助 https://gist.github.com/811993 在调试中,我得到的是: E/kroll(382):(1克朗:app://app.js)[2344575]错误,调用:[callMethod UI.WebView.UI.WebView

我试着用下面的例子;我正试图为我父母的网站www.baomoi.com使用一个定制的css文件,以使其更加简洁和高对比度。此代码示例在加载时导致力闭合。我在/Resources文件夹中有styles.css。我如何确定导致错误的位置

提前感谢大家的帮助

https://gist.github.com/811993
在调试中,我得到的是: E/kroll(382):(1克朗:app://app.js)[2344575]错误,调用:[callMethod UI.WebView.UI.WebView:event:load null],消息:大小必须大于等于0 E/KrollCallback(382):java.lang.IllegalArgumentException:大小必须大于等于0E/AndroidRuntime(345):位于org.appcelerator.titanium.kroll.KrollHandlerThread.run(KrollHandlerThread.java:86) E/AndroidRuntime(345):由以下原因引起:java.lang.IllegalArgumentException:大小必须大于等于0 E/AndroidRuntime(345):位于java.io.ByteArrayOutputStream。(ByteArrayOutputStream.java:67) E/AndroidRuntime(345):位于org.appcelerator.titanium.util.TiStreamHelper.toByteArray(TiStreamHelper.java:106)
E/AndroidRuntime(345):在org.appcelerator.titanium.TiBlob.getBytes(TiBlob.java:120)

应该使用evalJS,而不是使用url属性注入javascript

您可以从文件中读取本地CSS数据,然后像这样插入:

// read the css content from styles.css    
var cssContent = Titanium.Filesystem.getFile('styles.css');

// make it available as a variable in the webview    
webview.evalJS("var myCssContent = " + JSON.stringify(String(cssContent.read())) + ";");

// create the style element with the css content    
webview.evalJS("var s = document.createElement('style'); s.setAttribute('type', 'text/css'); s.innerHTML = myCssContent; document.getElementsByTagName('head')[0].appendChild(s);");