Otóż potrzebuję wywołać taki skrypt: parent.waehleGarten(2)
Próbowałem już przeróżnych metod, ale nic mi nie działa.
Co konkretnie nie działa ? Może jakiś dłuższy kawałek kodu ?
Dłuższego kodu to tu nie ma. Mam taki obiekt na stronie:
<div style="position: absolute; top: 108px; left: 39px; width: 38px; height: 34px; background: transparent url("http://pics.wurzelimperium.de/pics/popin/map/garten_out.jpg") repeat scroll 0% 0%;" onclick="parent.waehleGarten(2)" onmouseover="this.style.background='url(http://pics.wurzelimperium.de/pics/popin/map/garten_over.jpg)';" onmouseout="this.style.background='url(http://pics.wurzelimperium.de/pics/popin/map/garten_out.jpg)';" class="link"><img src="http://pics.wurzelimperium.de/pics/leer.gif" height="34" width="38"></div>
i chcę aby program w niego kliknął/otworzył odnośnik.
Gdyby element ten posiadał id zrobiłbym to tak:
webBrowser1.Document.GetElementById("jakiesid").InvokeMember("click");
ale że go nie posiada próbowałem wywołać parent.waehleGarten(2).
webBrowser1.Document.InvokeScript("parent.waehleGarten(2)");
Ale nie przynosi to żadnego efektu. Gdy wpiszę parent.waehleGarten(2) w konsoli WWW w przeglądarce (firefox) wszystko działa prawidłowo.
Właśnie spróbowałem podmienić wartość argumentu onclick innego obiektu na stronie który posiada id.
webBrowser1.Document.GetElementById("stammtischDiv").SetAttribute("onclick", "parent.waehleGarten(2)");
webBrowser1.Document.GetElementById("stammtischDiv").InvokeMember("click");
Lecz nie dało to efektu, i nawet po ręcznym kliknięciu w obiekt, nic się nie dzieje (nie ładuje się ani nowy skrypt, ani stary);
W dokumentacji https://msdn.microsoft.com/en-us/library/cc452443%28v=vs.110%29.aspx napisano jak się przekazuje parametry do wywoływanego skryptu ale po co tam zaglądać.
Już tam zaglądałem, niewiele mi to dało, dobrze to zapisuje?
webBrowser1.Document.InvokeScript("parent.waehleGarten)", "2");
Bo jakoś dalej mi nie działa.
webBrowser1.Document.InvokeScript("parent.waehleGarten", "2");
Nie wiem co to za skrypt ale z tego co widzę masz parametr mieć typu int więc chyba coś w deseń:
webBrowser1.Document.InvokeScript("waehleGarten", new object[] { 2 });
jak nie zadziała to
webBrowser1.Document.InvokeScript("parent.waehleGarten", new object[] { 2 });
gdyby jednak parametrem miał być string to:
webBrowser1.Document.InvokeScript("waehleGarten", new string[] {"2"});
lub
webBrowser1.Document.InvokeScript("parent.waehleGarten", new string[] {"2"});
Wielkie dzieki, to działa:
webBrowser1.Document.InvokeScript("waehleGarten", new object[] { 2 });