Javerscript -> Alert-Meldung

  • VB.NET

Es gibt 6 Antworten in diesem Thema. Der letzte Beitrag () ist von SAR-71.

    Javerscript -> Alert-Meldung

    Moin,

    ich steh vor ein Problem: In einem Webbrowser wird ein Control betätigt
    Dieses Control verursacht ein Alert (Sone Art Msg-Box) und danach soll die Website im Webbrowser geändert werden

    Aber durch diese Meldung wird der Webbrowser geblockt
    Ich hab schon alles mögliche mit Sendkeys probiert -> Kein Ergebnis


    Was kann ich dagegen machen?



    Mfg.
    SAR

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von „SAR-71“ ()

    Hi,

    hab leider nur die C#-Klasse hier, aber das Funktioniert einbandfrei musst du halt in VB.Net konvertieren.

    C-Quellcode

    1. using System;
    2. using System.Data;
    3. using System.Configuration;
    4. using System.Web;
    5. using System.Web.Security;
    6. using System.Web.UI;
    7. using System.Web.UI.HtmlControls;
    8. using System.Web.UI.WebControls;
    9. using System.Web.UI.WebControls.WebParts;
    10. using System.Collections;
    11. using System.Text;
    12. /// <summary>
    13. /// Gibt eine Messagebox am Client aus.
    14. /// </summary>
    15. public class MessageBox
    16. {
    17. private static Hashtable hashtable = new Hashtable();
    18. private MessageBox() { }
    19. /// <summary>
    20. /// Ausgeben einer Messagebox mit Javascript
    21. /// </summary>
    22. /// <param name="sMessage">Auszugebender Text</param>
    23. public static void Show(string sMessage)
    24. {
    25. if (!hashtable.Contains(HttpContext.Current.Handler))
    26. {
    27. Page executingPage = HttpContext.Current.Handler as Page;
    28. if (executingPage != null)
    29. {
    30. Queue messageQueue = new Queue();
    31. messageQueue.Enqueue(sMessage);
    32. hashtable.Add(HttpContext.Current.Handler, messageQueue);
    33. executingPage.Unload += new EventHandler(ExecutingPage_Unload);
    34. }
    35. }
    36. else
    37. {
    38. Queue queue = (Queue)hashtable[HttpContext.Current.Handler];
    39. queue.Enqueue(sMessage);
    40. }
    41. }
    42. private static void ExecutingPage_Unload(object sender, EventArgs e)
    43. {
    44. Queue queue = (Queue)hashtable[HttpContext.Current.Handler];
    45. if (queue != null)
    46. {
    47. StringBuilder sb = new StringBuilder();
    48. int iMsgCount = queue.Count;
    49. sb.Append("<script language='javascript'>");
    50. string sMsg;
    51. while (iMsgCount-- > 0)
    52. {
    53. sMsg = (string)queue.Dequeue();
    54. sMsg = sMsg.Replace("\n", "\\n");
    55. sMsg = sMsg.Replace("\"", "'");
    56. sb.Append(@"alert( """ + sMsg + @""" );");
    57. }
    58. sb.Append(@"</script>");
    59. hashtable.Remove(HttpContext.Current.Handler);
    60. HttpContext.Current.Response.Write(sb.ToString());
    61. }
    62. }
    63. }


    Aufruf wäre

    C-Quellcode

    1. MessageBox.Show("Zeig dich!");


    Hoffe es hilft dir ;)


    Evtl hilft bei dir auch einfach, bei mir hat sich hier, die Messagebox ständig wieder geöffnet!
    Das o.g. funktioniert auf jedenfall!!

    VB.NET-Quellcode

    1. Dim sText as String
    2. sText = "Blabla"
    3. Response.Write("<script>alert(' " + sText + " ')</script>")
    Schreib ich so undeutlich? :D

    Auf einer Website, die ich via Webbrowser ansteuere, sorge ich dafür, dass Javascript xyz aufgerufen wird.
    xyz gibt aber ein Meldung mit dem "alert" aus. Deswegen nenne ich das ganze auch "Alert-Meldung".
    Nachdem ich die Alert-Meldung erhalten habe möchte ich, dass der Webbrowser zu einer anderen Website geht. Aber dadurch, dass diese Alert-Meldung ausgeben wurde, wird der Webbrowser geblockt bzw. er wird nicht mehr ansprechbar.
    Jetzt will ich wissen, wie ich diese Alert-Meldung weg bekomme, sodass mein Programm weiterarbeiten kann.


    Hoffe so ist es klarer :P



    Mfg.
    SAR