| Autor |
Beitrag |
Matthias-K
      
Beiträge: 271
Win95, Win98, Win2000, WinXP, Linux
D2, D4 Client/Server, D5 Enterprise, D6 Enterprise, D7 Enterprise, Delphi2005, C/C++ 3.0, C/C ++ 5.0, C/C++ 6.0
|
Verfasst: Mo 19.01.09 01:42
hi,
ich sitz hier an einem etwas defusen problem:
und zwar das alte leidige thema des auto fill in ner webseite!
und zwar, nach tonnenweisen zeilen quelltext derselben seite, welche aus frames besteht, kann ich einfach keinen namen für des eingabefeld herausfinden. ich kann noch nichtmal das frame eindeutig identifizieren.
ich hab auch schon nach einer java anweisung im sourcecode gesucht.
ich kann nur nichts echtes finden, weil das alles in sich verdreht ist!
gibts ne möglichkeit, den zugriff auf des feld doch irgendwie zu bekommen?
oder zumindest mir alle objecte samt namen und typ auf der seite anzeigen zu lassen?
ist vieleicht bissle umständlich geschrieben, ich weis!
mfg matthias
_________________ Ein Spezialist ist ein Mensch, der immer mehr von immer weniger weis, bis er alles von nichts weis!
|
|
jaenicke
      
Beiträge: 19346
Erhaltene Danke: 1754
W11 x64 (Chrome, Edge)
Delphi 12 Pro, C# (VS 2022), JS/HTML, Java (NB), PHP, Lazarus
|
Verfasst: Mo 19.01.09 02:17
Wie greifst du denn auf den Quelltext zu? Generell ist das ja kein größeres Problem, es ist ja beispielsweise das fünfte Element o.ä., wenn du z.B. den integrierten Parser vom TWebBrowser benutzt, dann hast du die Elemente ja schon in einem Array.
Und wenn du einen anderen Parser verwendest, dann müsstest du ja auch nur die entsprechenden Elemente durchgehen.
So ganz ohne Quelltext oder der Beschreibung was du da eigentlich wie machst ist mir völlig unklar wo genau eigentlich dein Problem liegt. 
|
|
Matthias-K 
      
Beiträge: 271
Win95, Win98, Win2000, WinXP, Linux
D2, D4 Client/Server, D5 Enterprise, D6 Enterprise, D7 Enterprise, Delphi2005, C/C++ 3.0, C/C ++ 5.0, C/C++ 6.0
|
Verfasst: Mo 19.01.09 11:04
ja, den twebbrowser verwende ich.
nur versteh ich nicht, was du mit dem array meinst.
der sourcecode des frames sieht so aus:
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: 42: 43: 44: 45: 46: 47: 48: 49: 50: 51: 52: 53: 54: 55: 56: 57: 58: 59: 60: 61: 62: 63: 64: 65: 66: 67: 68: 69: 70: 71: 72: 73: 74: 75: 76: 77: 78: 79: 80: 81: 82: 83: 84: 85: 86: 87: 88: 89: 90: 91: 92: 93: 94: 95: 96: 97: 98: 99: 100: 101: 102: 103: 104: 105: 106: 107: 108: 109: 110: 111: 112: 113: 114: 115: 116: 117: 118: 119: 120: 121: 122: 123: 124: 125: 126: 127: 128: 129: 130: 131: 132: 133: 134: 135: 136: 137: 138: 139: 140:
| <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <html> <head> <style type="text/css"> body { padding: 0px; margin: 0px; } </style> <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1"> <title>Eingabezeile</title> <script language="JavaScript"> <!-- var Netscape = new Boolean(); var Opera = new Boolean(); var Konqueror = new Boolean(); Netscape = false; Opera = false; Konqueror = false; if(navigator.appName == "Netscape") Netscape = true; else if(navigator.appName == "Opera") Opera = true; else if(navigator.appName == "Konqueror") Konqueror = true;
function delout() { document.input.message.value = document.input.message.value.replace(/&/g, '\\AND'); document.input.submit(); //document.getElementById("message").readOnly = true; document.getElementById("message").style.background = "#CFDEEC"; parent.document.getElementById("indt").style.background = "#CFDEEC"; parent.neuezeile(document.input.message.value); document.input.message.focus(); document.input.message.value = ""; return false; } function selectinput() { document.input.message.select(); } /* function popup(site,width,height) { var left = (screen.availWidth-width)/2; var top = (screen.availHeight-height)/2; var win = window.open(site,"_blank","width="+width+",height="+height+",left="+left+",top="+top+",scrollbars=yes"); }*/ function canWrite() { //document.getElementById("message").readOnly = false; parent.document.getElementById("indt").style.background = "#ffffff"; document.getElementById("message").style.background = "#ffffff"; } function go(text) { document.inputhid.message.value = text; document.inputhid.submit(); //document.getElementById("message").readOnly = true; document.getElementById("message").style.background = "#CFDEEC"; parent.document.getElementById("indt").style.background = "#CFDEEC"; document.input.message.focus(); } function TasteLosgelassen(Ereignis) { if(navigator.appName == "Netscape") { parent.TasteLosgelassen(Ereignis); } else { Ereignis = window.event; parent.TasteLosgelassen(Ereignis); } } function clickTab(tab) { parent.clickTab(tab); } function insertTag(stag, etag) { var obj = document.input.message; if (navigator.userAgent.indexOf("MSIE") > -1 && !Opera) { insertTagIE(obj, stag, etag); } else if (window.getSelection && navigator.userAgent.indexOf("Safari") == -1) { insertTagMoz(obj, stag, etag); } else { insertTagNS(obj, stag, etag); } document.input.message.focus(); } function insertTagNS(obj, stag, etag) { obj.value = obj.value+stag+etag; } function insertTagMoz(obj, stag, etag) { txt = window.getSelection(); if (!txt || txt == '') { t = document.getElementById('message'); h = document.getElementsByTagName('input')[0]; if (t.selectionStart == t.selectionEnd) { t.value = t.value.substring(0, t.selectionStart) + stag + etag + t.value.substring(t.selectionEnd, t.value.length); return; } txt = t.value.substring(t.selectionStart, t.selectionEnd); if (txt) { t.value = t.value.substring(0, t.selectionStart) + stag + txt + etag + t.value.substring(t.selectionEnd, t.value.length); return; } } obj.value = obj.value+stag+etag; }
function insertTagIE(obj, stag, etag) { r=document.selection.createRange(); if( document.selection.type == 'Text' && (obj.value.indexOf(r.text) != -1) ) { a = r.text; r.text = stag+r.text+etag; if ( obj.value.indexOf(document.selection.createRange().text) == -1 ) { document.selection.createRange().text = a; } } else insertAtCaret(obj, stag+etag); } function insertAtCaret(textEl, text) { if (textEl.createTextRange && textEl.caretPos) { var caretPos = textEl.caretPos; caretPos.text = caretPos.text.charAt(caretPos.text.length - 1) == ' ' ? text + ' ' : text; } else textEl.value = textEl.value + text; } document.onkeyup = TasteLosgelassen; //--> </script> </head> <body id="body"> <div id="info" style="height: 25px; padding:0px; margin:0px; background-image: url(http://website.de/IMG/edgewno.gif); background-repeat: no-repeat; background-position: top right;"><div style="padding:0px; margin:0px; background-image: url(http://website.de/IMG/edgewnw.gif); background-repeat: no-repeat; background-position: top left; height:100%;"><div style="padding:0px; margin:0px; background-image: url(http://website.de/IMG/edgewso.gif); background-repeat: no-repeat; background-position: bottom right; height:100%;"><div style="padding:0px; margin:0px; background-image: url(http://website.de/IMG/edgewsw.gif); background-repeat: no-repeat; background-position: bottom left; height:100%;"><div style="padding:3px;"><form method="POST" name="input" action="tp_inputt.html" target="blank" onsubmit="return delout();" style="width: 98%; height: 18px; margin: 0px; padding: 0px; overflow: hidden;"> <input type="text" name="message" id="message" style="width: 100%; border: 0px; background-color: #ffffff; " maxlength="5000"> <input type="hidden" name="event" value="inputt"> <input type="hidden" name="tmpid" value=""> <input type="hidden" name="end" value="end"> </form></div></div></div></div></div> <form method="POST" name="inputhid" action="tp_inputt.html" target="blank" style="visibility:hidden; display: none;"> <input type="hidden" name="message" value=""> <input type="hidden" name="event" value="inputt"> <input type="hidden" name="tmpid" value=""> <input type="hidden" name="end" value="end"> </form> <script type="text/javascript"> parent.isinput = true; </script> </body> </html> |
über message lässt es sich ne ansprechen.. ich komm einfach ne weiter...
und ich finde auch keine funktion, der ich per source den text zuweisen kann...
aber mal angesehen davon, kann ich eine java funktion so aufrufn???: webbrowser1.Navigate('javascript:Functionsname');
mfg matthias
_________________ Ein Spezialist ist ein Mensch, der immer mehr von immer weniger weis, bis er alles von nichts weis!
|
|
jaenicke
      
Beiträge: 19346
Erhaltene Danke: 1754
W11 x64 (Chrome, Edge)
Delphi 12 Pro, C# (VS 2022), JS/HTML, Java (NB), PHP, Lazarus
|
Verfasst: Mo 19.01.09 15:26
Mir Array meine ich, dass du die einzelnen Frames über ein Array abrufen kannst:
www.cryer.co.uk/bria...ject.Document.Frames
Auch die einzelnen Eingabefelder etc. kannst du auf ähnliche Weise ansprechen ohne deren Namen zu kennen.
Vielleicht helfen dir ja die Beispiele auf dieser Seite bereits.
Skripte kann man natürlich ausführen:
delphi.about.com/od/...qt/wb_execscript.htm
Aber was hat das mit dem Zugriff auf eines der Eingabefelder zu tun, ich dachte darum ginge es?
|
|
Matthias-K 
      
Beiträge: 271
Win95, Win98, Win2000, WinXP, Linux
D2, D4 Client/Server, D5 Enterprise, D6 Enterprise, D7 Enterprise, Delphi2005, C/C++ 3.0, C/C ++ 5.0, C/C++ 6.0
|
Verfasst: Mo 19.01.09 15:28
ich schau mir des ma an! thx
der 2. punkt war rein interessehalber! danke
_________________ Ein Spezialist ist ein Mensch, der immer mehr von immer weniger weis, bis er alles von nichts weis!
|
|
|