Javascript UIwebview中的CSS注入
我试着用下面的例子;我正试图为我父母的网站www.baomoi.com使用一个定制的css文件,以使其更加简洁和高对比度。此代码示例在加载时导致力闭合。我在/Resources文件夹中有styles.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
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);");