小弟现在做一个程序,需要给webbrowser控件中加载的窗体中的控件自动填写值,
现在常规的控件像文本框,下拉框之类的都可以赋值,但是,discuz日志发布中的内容框的赋值却不能成功.
下面是discuz日志发布中标题和内容的输入框代码
<tr>
<td>
<!---此处为标题,可以自动输入-->
<input type="text" class="t_input" id="subject" name="subject" value="" size="60" onblur="relatekw();" /></td></tr><tr><td><a id="doodleBox" href="magic.php?mid=doodle&showid=blog_doodle&target=uchome-ttHtmlEditor&from=editor" style="display:none"></a><textarea class="userData" name="message" id="uchome-ttHtmlEditor" style="height:100%;width:100%;display:none;border:0px"></textarea>
<!--此处为内容,不能自动输入,iframe下还有个body标签,值实际是赋值给了body,但是查看源代码时看不见,用chrome的审查元素可以看到-->
<iframe src="editor.php?charset=utf-8&allowhtml=&doodle=1" name="uchome-ifrHtmlEditor" id="uchome-ifrHtmlEditor" scrolling="no" border="0" frameborder="0" style="width:100%;border: 1px solid #C5C5C5;" height="400"></iframe>
</td>
</tr>另外,发布信息时,实际存储内容的是message标签
<textarea class="userData" name="message" id="uchome-ttHtmlEditor" style="height:100%;width:100%;display:none;border:0px"></textarea>
,但是直接给message赋值的话,不能显示到输入框中请教各位该怎样给内容输入框赋值?因为我要做的是模拟手动输入,所以不能直接用HttpWebRequest之类的如果方便的话,麻烦各位最好能打开一个discuz日志发布页面测试一下
现在常规的控件像文本框,下拉框之类的都可以赋值,但是,discuz日志发布中的内容框的赋值却不能成功.
下面是discuz日志发布中标题和内容的输入框代码
<tr>
<td>
<!---此处为标题,可以自动输入-->
<input type="text" class="t_input" id="subject" name="subject" value="" size="60" onblur="relatekw();" /></td></tr><tr><td><a id="doodleBox" href="magic.php?mid=doodle&showid=blog_doodle&target=uchome-ttHtmlEditor&from=editor" style="display:none"></a><textarea class="userData" name="message" id="uchome-ttHtmlEditor" style="height:100%;width:100%;display:none;border:0px"></textarea>
<!--此处为内容,不能自动输入,iframe下还有个body标签,值实际是赋值给了body,但是查看源代码时看不见,用chrome的审查元素可以看到-->
<iframe src="editor.php?charset=utf-8&allowhtml=&doodle=1" name="uchome-ifrHtmlEditor" id="uchome-ifrHtmlEditor" scrolling="no" border="0" frameborder="0" style="width:100%;border: 1px solid #C5C5C5;" height="400"></iframe>
</td>
</tr>另外,发布信息时,实际存储内容的是message标签
<textarea class="userData" name="message" id="uchome-ttHtmlEditor" style="height:100%;width:100%;display:none;border:0px"></textarea>
,但是直接给message赋值的话,不能显示到输入框中请教各位该怎样给内容输入框赋值?因为我要做的是模拟手动输入,所以不能直接用HttpWebRequest之类的如果方便的话,麻烦各位最好能打开一个discuz日志发布页面测试一下
// 成功加载网页时,执行的相关操作
private void webBrowser1_DocumentCompleted(object sender, WebBrowserDocumentCompletedEventArgs e)
{
if (!login) // 用户已经成功“登录”了吗?
{
HtmlDocument d = webBrowser1.Document;
HtmlElement btnLogin = d.All["imgDL"];
if (btnLogin != null)
{
btnLogin.Click += new HtmlElementEventHandler(btnLogin_Click);
}
else
{
login = true;
RegistryKey k = Registry.LocalMachine.OpenSubKey("SoftWare\\Microsoft\\Cjcx.com",true);
if (k == null) k = Registry.LocalMachine.OpenSubKey("SoftWare\\Microsoft", true).CreateSubKey("Cjcx.com");
k.SetValue("userName", user);
k.SetValue("userPwd", pwd);
k.Close();
}
}
else if (!clickCjlr) // 单击过 “成绩录入”按钮吗?
{
HtmlDocument d = webBrowser1.Document.Window.Frames["topFrame"].Document;
HtmlElement lr = d.All["hlCJLR"];
HtmlElement relogin = d.All["IMG1"];
HtmlElement logout = d.All["IMG2"];
if (lr != null)
{
relogin.Click += new HtmlElementEventHandler(relogin_Click);
logout.Click += new HtmlElementEventHandler(logout_Click);
lr.InvokeMember("click");
clickCjlr = true;
}
}
}
这种方法,应该可以解决你的问题