【发布时间】:2011-02-15 10:22:19
【问题描述】:
我编写了一个 HTML 页面,其中包含以下代码。
<div id="adsListContainer" style="margin: 5px;">
<textarea id="txtDesc" rows="20" cols="50"></textarea>
<br />
<input id="txtCounts" value="0" size="8" />
<input type="button" value="Count" onclick="countChars()" />
</div>
上面的 html 包含在一个名为 test.html 的文件中,并显示在 android 的 WebView 控件中。现在使用 Java 和 WebView 的 loadURL() 函数,我正在执行 javascript,以便按照以下代码在该文本区域中编写一些内容。
javascript:document.getElementsByTagName("textarea")[0].value += 'anything goes here of not more than 50 chars';void(0);
即使上面的代码有效并且我多次调用它,所以我可能会在这个 textarea 元素中插入 7000 多个字符。
负责执行 Javascript 以将文本 (HTML) 插入 textarea 的 Java 代码如下。
int bStart = 0;
int bEnd = 49;
String description = "some huge description including html tags"
int totalChars = description.length() - 1;
while (bStart <= totalChars) {
if (bEnd > totalChars)
bEnd = totalChars;
rv = "javascript:";
rv += "var tas=document.getElementsByTagName('textarea');"; // description
rv += "if (tas.length>0) {";
rv += "var ta=tas[0];";
rv += "ta.value += '"
+ description.substring(bStart, bEnd)
.replace("'", "\\'").replace('"', '\"') + "';"; // description
rv += "}";
webView.loadUrl(rv + "void(0);");
bStart += 50;
bEnd += 50;
}
虽然上面的代码可以工作,但并不完美。描述有 7245 个字符,但它只在网页的 textarea 中插入 6267 个字符。
我有什么遗漏吗?
【问题讨论】:
-
我希望这个语法 {document.getElementsByTagName('textarea')} 代替 {document.getElementsByTagName('textarea')[0]} 在这里没有任何错误。请澄清。
-
是的,这工作正常。 TextArea 完美地填充了简单的文本,但是当它用 HTML 填充时它会中断
标签: java javascript android html webview