Bonjour,
Je dispose d'une classe h�ritant de CDialog et affichant une CHtmlView.
J'arrive effectivement � visualiser une URL gr�ce � ce proc�d�. J'aimerai cependant r�cup�rer une variable globale javascript, pour pouvoir ensuite appeler des m�thodes de cette variable pour changer dynamiquement le contenue de la page HTML. J'ai trouv� quelques liens sur internet pour r�cup�rer des variables javascript, mais �a n'a pas l'air de fonctionner, seulement je n'arrives pas bien � voir ce que je fais mal (ou que je ne fais pas). Voil� en gros ce que j'ai �cris jusqu'� maintenant :
Test.h
.cpp
Code : S�lectionner tout - Visualiser dans une fen�tre � part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16 class Test : public CDialog { public : Test(CWnd* pParent = NULL); afx_msg BOOL OnInitDialog(); bool GetJScript(); virtual ~Test_Oleg(); private : CHtmlView* m_html; CComPtr<IHTMLDocument2> m_spDoc; CComPtr<IDispatch> scripts; CSplitterWnd m_split; };
la variable DS est repr�sent�e comme ceci dans le html :
Code : S�lectionner tout - Visualiser dans une fen�tre � part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41 BOOL Test::OnInitDialog() { CDialog::OnInitDialog(); CRect rect; GetClientRect( &rect ); m_split.CreateStatic(this, 1, 1); m_split.CreateView(0,0,RUNTIME_CLASS(CHtmlView), CSize(rect.right, rect.bottom), NULL); m_html = (CHtmlView*)m_split.GetPane(0, 0); m_html->Navigate2("lien_html"); m_split.MoveWindow(0,0, rect.right, rect.bottom -40); m_split.ShowWindow(SW_SHOW); LPDISPATCH pDisp = m_html->GetHtmlDocument(); if(pDisp) { HRESULT hresult = pDisp->QueryInterface( IID_IHTMLDocument2, (void**)&m_spDoc ); if(hresult != S_OK) { return FALSE; } if(!GetJScript()) { return FALSE; } //Find dispid for given function in the object CComBSTR bstrMember("DS"); DISPID dispid = NULL; HRESULT hr = scripts->GetIDsOfNames(IID_NULL,&bstrMember,1, LOCALE_SYSTEM_DEFAULT,&dispid); if(FAILED(hr)) { MessageBox("Can't find DS variable", "", MB_ICONWARNING); return false; } } }
Si quelqu'un a une id�e, ou sait o� est-ce que je m'y prends mal!
Code : S�lectionner tout - Visualiser dans une fen�tre � part
1
2
3 <script name="DS" id="DS"> var DS = new DataSet(); </script>
Merci d'avance,
Guillaume
Partager