webbrowser填充textarea的问题

来源:互联网 发布:故君子莫大乎与人为善 编辑:程序博客网 时间:2024/04/30 13:54

我在用webbrowser控件做一个自动填充的程序,自动填充很简单 页面都是text元素,几个单选等等。获取到设置value就行了,但是在最后我遇到一个很棘手的问题,就是有一个textarea的文本编辑区。这个编辑区跟QQ空间,还有其他空间写日志用的编辑区差不多,只是比他们少一些编辑格式的功能罢了。开始我认为只是一个textarea而已,以前也做过,很简单设置它的innertext属性就搞定了,可是事实并没有我想的那么好,我设置了他的innertext没有任何效果。难道没有获取到这个textarea,于是我加了一个是否为空的判断,结果还是不行。后来我尝试了各种方法设置它的value、text 、找到他属于的div 设置innerhtml属性,以及给webbrowser重置html源码都不行,后来怀疑是要执行某个js函数,就瞪着那个页面的源代码找js函数,找好大功夫找到两个看着跟textarea有关的js函数,于是在程序里加上执行这个js函数并传递参数,结果还是很失望,textarea还是空的。然后又想难道是还要触发一下textarea的什么事件,没办法求助google了,详细gg了一下textarea,看了所有他的行为,方法,事件,属性,也试了好多,结果还是失望,为什么就填充不上呢。无奈又去看页面,我偶然在编辑区点了右键查看源代码,结果他出来并不是整个页面的源代码,它只是一个空的页面,里面什么都没有,下面给出那个页面的代码:

<!DOCTYPE><html><head xmlns="http://www.w3.org/1999/xhtml"><meta http-equiv="X-UA-Compatible" content="IE=7" /><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /></head><body id="tinymce" class="mceContentBody "></body></html>

我想里面用到了框架?然后我去整个页面的源代码里搜索 iframe frameset 都没有发现有什么框架,哎,不管了 就按他在某一个框架里写程序试试吧。于是我在程序加了这一句代码:
this.webbrowser1.document.window.frames[0].document.getelementbyid(“tinymce”).innertext="我的内容";

 然后我调试一次试试吧。哈,真是意想不到,结果出来了。这个问题这么纠结。整整搞了我一天的时间。终于出来了,心情很舒畅。哈哈。顺便再说一下 我上句代码 getelementById里的id并不是textarea的id 而是那个空页面body的id 大家看一下就知道了。附textarea的图:

原创粉丝点击