C# JavaScript Methode aufrufen

-Sab-k-

Grünschnabel
Hallo,

ich würde gerne wissen, ob es möglich ist mit C# eine Methode aus einer JavaScript-Datei aufzurufen - ohne ASP.Net zu verwenden.
Ich hab es schon über ClientScript.RegisterStartUpScript() usw. versucht, aber da passiert gar nichts. Es wird nicht mal zum Test ein Alert("test"); ausgegeben.
Bin über jede Hilfe/Link dankbar!

LG Sab
 
Hey,

du kannst mit
C:
ClientScript.RegisterStartUpScript(GetType(), "", "<script type=\"text/javascript\">alert('test');</script>")
deinen Javascript-Code ausführen lassen.

Allerdings ist das kein echter Aufruf der Funktion per ASP.NET. Mit diesen Zeilen erzeugst du nur HTML-Code, der von dem Browser eben ausgeführt wird.
 
Hallo Martin,

genau über diesen Weg hatte ich es ja versucht, aber es wird halt nichts ausgegeben.
Das ist mein Code, der dem deinigen entspricht.

page.ClientScript.RegisterStartupScript(GetType(), "", "<script type=\"text/javascript\">alert('test');</script>");

Wenn ich dann beim Debuggen mir page angucke, muss ich fast überall lesen, dass eine System.Web.HttpException gab. Mein C# Code wird allerdings ohne Exception ausgeführt. Hast du irgendeine Ahnung, woran das liegen könnte?

Danke + LG
Sab
 
Hallo.

Gib mal einen Key für dein Script an. (2ter Parameter..)

Die Script-Tags kannst dir sparen, wenn du eine Überladung dieser Methode benutzt.

C#:
Page.ClientScript.RegisterStartupScript(this.GetType(), "alertScript", "alert('test');", true);
 
Hallo,

hab ich auch schon probiert - mit demselben Ergebnis wie die ganzen anderen Male zuvor.
Hab echt kein Plan mehr, woran es liegen könnte.
 
Also, da ich ja keine ASP.Net Seite habe, muss ja ne neue Page erzeugen, richtig!? Deshalb:

Code:
Page page = new Page();
page.ClientScript.RegisterStartupScript(this.GetType(), "alertScript", "alert('test');", true);

andere Variante:

Code:
Page page = new Page();
page.ClientScript.RegisterStartupScript(GetType(), "", "<script type=\"text/javascript\">alert('test');</script>")

wiederum andere Variante:

Code:
Page page = new Page();
page.ClientScript.RegisterClientScriptInclude("IDJavaScriptFile", "MeinJavaScriptFile.js");
page.ClientScript.RegisterStartupScript(page.GetType(), "IDJavaScriptFile", "window.open('http://www.tutorials.de');", true);

und hier mal mit ClientScript Manager:

Code:
Page page = new Page();
ClientScriptManager csm = page.ClientScript;
csm.RegisterStartupScript(this.GetType(), "alertScript", "alert('test');", true);

und überall mit dem Resultat, dass nichts passiert.
Deshalb war ja auch eingangs meine Frage, ob es überhaupt möglich ist ohne eine ASP.Net Page eine JavaScript Methode aufzurufen.

LG Sab
 
Du darfst keine neue Page erzeugen!

Du willst ja in der aktuellen Seite das Skript erzeugen, also muss du es auch in dieser registrieren.
Lass also den ganzen Quatsch weg und probier es mit dem Alexander gepostet hat. Das müsste vollkommen ausreichen!
 
Warum hast du denn keine Page?!

Wie/Wo willst überhaupt das JavaScipt ausführen lassen?!

ClientScript.RegisterStartupScript ist dazu da, um einen JavaScript "Befehl" in der Ausgabe der ASP.net Seite zu "registrieren". Ausgeführt wieder dieser Befehl dann vom Browser,.. ganz normal, er weiss ja nix von der ASP.net Seite etc. Für ihn ists ganz normales HTML und JavaScript.

So wie du das machst, frage ich mir wirklich was du da probierst. Bitte kläre mich auf, was machst du? *g*

lg, Alex
 
Hallo Alex,

also... Ich hab mit C# ein Plugin erstellt und das hat u.a. einen Button. Über diesen Button will ich jetzt eigtl auf meine JavaScript-Datei zugreifen. In dieser JavaScript-Datei sind dann verschiedene Methoden, wo ich u.a. überprüfen will, ob im aktuellen Browserfenster markierter Text vorliegt.
Hab diese .js Datei angelegt, weil die Toolbar auch im FF funktionieren soll und mit JavaScript ist der Zugriff auf den Browser ja kein Problem.

LG Sab
 

Neue Beiträge

Zurück