1. #1

    Registriert seit
    27.02.2017
    Beiträge
    39
    Thanked 2 Times in 2 Posts

    Standard [Hilfe] C# - Beim hinzufügen des Textes im HTML über eine Textbox

    Hallihallo liebe U-Labs Community,

    Ich möchte eine IP über eine URL eintragen von einer Textbox eintragen. Ich habe folgendes Problem..
    Und zwar, wenn ich meinen Wert in der Textbox eintrage wird die auf der Website anders wiedergegeben.
    So sieht das ganze aus:

    IP in der Textbox: "192.168.24.2"(ausgedachte IP) und auf der Seite wird es so wiedergegeben: "192.168"
    der Rest wird nicht angezeigt. Ich hab es auch schon über zwei Textboxen versucht. Klappt auch nicht.

    Code den ich in C# verwende:
    Code:
    webView21.ExecuteScriptAsync("document.getElementById('hostL4').value = "+ textBox1.Text);
    HTML von der Webseite:
    HTML-Code:
    <input type="text" id="hostL4" class="form-control" placeholder="IPv4 1.1.1.1">
    Könnte mir bitte wer helfen, das ganze hinzubekommen?
    Ich verzweifel schon.

  2. #2
    Avatar von DMW007
    Registriert seit
    15.11.2011
    Beiträge
    6.210
    Thanked 9.132 Times in 3.006 Posts
    Blog Entries
    5

    Standard AW: [Hilfe] C# - Beim hinzufügen des Textes im HTML über eine Textbox

    Hi,

    das value-Attribute in JavaScript erwartet einen String für Zeichenketten, wie du sie mit deiner IP hast. Du setzt den Wert nicht in Anführungsstriche, somit wird JS da selbst versuchen, was anderes draus zu konvertieren. Bei diesen automatischen Umwandlungen kommt an einigen Stellen Murks heraus. Ich vermute, dass er deine IP-Adresse als Fließkommazahl (Float) parst. Es gibt keinen Nicht-String Typ mit mehr als einem Punkt, daher wird JS den Rest abschneiden oder runden.

    In JS hast du die Wahl zwischen einfachen und doppelten Anführungsstrichen ohne Funktionsunterschied. Daher kannst du es dir einfach machen und innerhalb deiner Doppelten aus C# die einfachen für JS nehmen und somit escapen sparen:
    Code:
    webView21.ExecuteScriptAsync("document.getElementById('hostL4').value = '" + textBox1.Text + "'");
    Zum Vergleich: Die erste Zeile ist das, was bei deinem Code ankommt (kein String, also als Float oder so was gecastet). In der zweiten Zeile meine überarbeitete Korrektur, da wird es mit den einfachen Anführungszeichen ' ' als String maskiert:
    Code:
    document.getElementById('hostL4').value = 192.168.24.2
    document.getElementById('hostL4').value = '192.168.24.2'
    Wenn dein webView21 Objekt ein Instanz des WebBrowser-Controls ist, solltest du aufpassen. Als ich noch Windows-Entwicklung gemacht habe, baute das auf dem IE auf, meines Wissens nach ist das bis heute so. Der war schon immer ein Sonderfall und wurde kürzlich von MS selbst beerdigt. Mittel- bis langfristig wird es also wohl zunehmend Kompatibilitätsprobleme damit geben. Vor allem bei Webseiten, die sich nicht explizit an Unternehmen richten. WebView2 soll wohl Edge sein, also Chromium. Das nur mal so am Rande, weil WebView teilweise als Synonym für das WebBrowser-Control genutzt wird. Falls es da zu seltsamen Problemen kommt, ist das WebBrowser-Control heutzutage generell eine mögliche Fehlerquelle. Solltest du bereits WebView einsetzen, ist das in der Hinsicht derzeit kein Thema.


  3. The Following User Says Thank You to DMW007 For This Useful Post:

    sl33p (02.07.2023)

Ähnliche Themen

  1. Chrome Addon "Badge" zur Extension hinzufügen Hilfe
    Von Iomega im Forum Skriptsprachen
    Antworten: 1
    Letzter Beitrag: 05.02.2023, 23:00
  2. [VBA] HTML Code in eine Access DB speichern
    Von Saad im Forum Skriptsprachen
    Antworten: 4
    Letzter Beitrag: 15.03.2021, 01:45
  3. Map - Wie eine Liste hinzufügen?
    Von Saad im Forum Java
    Antworten: 6
    Letzter Beitrag: 13.07.2013, 20:13
  4. [Hilfe] TextBox Splitten
    Von AmJano im Forum Knuddels Programmierung
    Antworten: 6
    Letzter Beitrag: 09.11.2012, 20:23
  5. [HTML] Aufgaben Hilfe
    Von Dost im Forum HTML
    Antworten: 3
    Letzter Beitrag: 19.03.2012, 18:01
Diese Seite nutzt Cookies, um das Nutzererlebnis zu verbessern. Klicken Sie hier, um das Cookie-Tracking zu deaktivieren.