3,245
社区成员
发帖
与我相关
我的任务
分享
void CWebGameView::OnDocumentComplete(LPCTSTR lpszURL)
{
// TODO: 在此添加专用代码和/或调用基类
CHtmlView::OnDocumentComplete(lpszURL);
//获得源码
CString strSource;
GetSource(strSource);
BOOL bRetVal = FALSE;
CComPtr<IDispatch> spDisp = GetHtmlDocument();
//CComQIPtr<IHTMLDocument2> spPersistStream = spDisp;
m_hdtHtmlMonitor = spDisp;
if( _tcscmp(lpszURL, _T("http://xxx/xx/index/")) == 0)
{
LoginGame();
}
}
DWORD CWebGameView::LoginGame()
{
IHTMLInputTextElement *ppvhInputElemt = NULL;
IHTMLFormElement *ppvhFormElemt = NULL;
IDispatch *ppvdispOption = NULL;
IHTMLElementCollection *ppvhElemtCollection = NULL;
COleVariant vatIndexForm( (long)0);
HRESULT hResult;
CString strUserName;
CString strPassword;
//从对话框输入用户名密码
m_pdlLogin = new CDialogLogin();
if( m_pdlLogin->DoModal() == IDOK)
{
strUserName = m_pdlLogin->GetLoginUserName();
strPassword = m_pdlLogin->GetLoginPassword();
}
//用户名输入控件
hResult = m_hdtHtmlMonitor->get_all(&ppvhElemtCollection);
hResult = ppvhElemtCollection->item( COleVariant(_T("username")), vatIndexForm, &ppvdispOption);
hResult = ppvdispOption->QueryInterface(IID_IHTMLInputTextElement, (void**)&ppvhInputElemt);
hResult = ppvhInputElemt->put_value( strUserName.GetBuffer());
ppvhInputElemt->Release();
ppvdispOption->Release();
//密码输入控件
ppvhElemtCollection->item( COleVariant(_T("password")), vatIndexForm, &ppvdispOption);
hResult = ppvdispOption->QueryInterface(IID_IHTMLInputTextElement, (void**)&ppvhInputElemt);
ppvhInputElemt->put_value( strPassword.GetBuffer());
ppvhInputElemt->Release();
ppvdispOption->Release();
//提交表单
hResult = ppvhElemtCollection->item( COleVariant(_T("lgform")), vatIndexForm, &ppvdispOption);
hResult = ppvdispOption->QueryInterface(IID_IHTMLFormElement, (void**)&ppvhFormElemt);
hResult = ppvhFormElemt->submit();
ppvhFormElemt->Release();
ppvdispOption->Release();
ppvhElemtCollection->Release();
return 0;
}
<form id="lgform" name="lgform" method="post" action="" onsubmit="FormSubmit();return false;">
<div class="loginInfo">
<p>
<label>用户名:</label>
<input type="text" name="username" id="username" class="text" />
</p>
<p>
<label>密 码:</label>
<input type="password" name="password" id='password' class="text" />
</p>
<p>
<label> </label>
<input type="checkbox" id="autoLogin" name="autoLogin" value="true" class="checkbox" />
记住我的登录状态</p>
<p>
<label> </label>
<input name="Submit" type="submit" class="button" value=""/>
<a id="fp" href="https://passport.baidu.com/?getpass" >忘记密码</a></p>
</div>
<input type='hidden' value='yx' name='tpl' />
<input type='hidden' name='u' id='ru' value='' />
</form>
<html>
<head><title>405 Not Allowed</title></head>
<body bgcolor="white">
<center><h1>405 Not Allowed</h1></center>
<hr><center>nginx</center>
</body>
</html>
<!-- a padding to disable MSIE and Chrome friendly error page -->
<!-- a padding to disable MSIE and Chrome friendly error page -->
<!-- a padding to disable MSIE and Chrome friendly error page -->
<!-- a padding to disable MSIE and Chrome friendly error page -->
<!-- a padding to disable MSIE and Chrome friendly error page -->
<!-- a padding to disable MSIE and Chrome friendly error page -->
hResult = m_hdtHtmlMonitor->get_parentWindow( &ppvhWindow2);
BSTR bs1= SysAllocString(_T("function confirm(str){FormSubmit();return true}"));
BSTR bs2(L"javascript");
hResult = ppvhWindow2->execScript(bs1, bs2, &pVariantTemp);
//模拟提交
hResult = m_hdtHtmlMonitor->get_parentWindow( &ppvhWindow2);
BSTR bs1= SysAllocString(_T("FormSubmit();return false;"));
BSTR bs2(L"javascript");
hResult = ppvhWindow2->execScript(bs1, bs2, &pVariantTemp);
::SysFreeString(bs2);
::SysFreeString(bs1);
function FormSubmit(){
var urls = "/login.xhtml";
if (G("autoLogin")) {
jQuery.ajax({
type: "POST",
url: urls,
data: {c:'login',loginName:jQuery("#username").val(),password:jQuery("#password").val(),autoLogin:G("autoLogin").value},
success: function(result) {
jQuery("#loginstatus").html(result);
}
});
}
else{
jQuery.ajax({
type: "POST",
url: urls,
data: {c:'login',loginName:jQuery("#username").val(),password:jQuery("#password").val(),autoLogin:false},
success: function(result) {
jQuery("#loginstatus").html(result);
}
});
}
}