2017-12-28 14 views
0

Ich mache eine ASP.NET-Webforms-Anwendung und ich habe ein Problem mit der Injektion eines Skripts in die Seite von einem Web-Steuerelement. Das Skript wird in dem gleichen Ordner wie Steuer befindet:Injizieren von JavaScript aus ASP.NET Webcontrol

Screenshot1

So wie ich versuche:

[ToolboxData("<{0}:MyWebControl runat=server></{0}:MyWebControl>")] 
[System.Drawing.ToolboxBitmap(typeof(MyWebControl))] 
public class MyWebControl : Image 
{ 

    //... 

    protected override void OnPreRender(EventArgs e) 
    { 
     base.OnPreRender(e); 


     string scriptStr = "<script src=\"my_script.js\" type=\"text/javascript\">"; 
     ClientScriptManager csm = Page.ClientScript; 
     csm.RegisterClientScriptBlock(this.Page.GetType(), "MyScriptTag", scriptStr); 

     //... 
    } 

} 

Wenn ich überprüfen, ob das Skript erfolgreich injiziert wurde, Chrome gibt mir dies:

Screenshot2

ich denke, das Problem mit script src=\"my_script.js\" verbunden ist, aber ich versuchte, den Weg zu ändern für lange ohne Erfolg.

Wir freuen uns für etwas Hilfe :)

Antwort

0

Sie den Pfad zu der JavaScript-Datei müssen Sie auf die Seite relativ sein, dass die Benutzersteuerung innerhalb gerendert wird. Ich nehme an, dass das Benutzersteuerelement von Ihrem index.aspx in Ihrem Webprojekt geladen wird. Fügen Sie dem Webprojekt einen Skriptordner hinzu und verschieben Sie die JavaScript-Datei dorthin. Ändern Sie dann die src zu

src=\"/Scripts/my_script.js\"

+0

Schön, dass gearbeitet! Aber genau das meinte ich nicht. Ist es möglich, die Skriptdatei an dem Ort zu kapseln, an dem ich sie ursprünglich platziert habe? Ich möchte es im ersten Projekt haben – YogoWafel

+0

Sie müssten das Skript als eine eingebettete Ressource festlegen und zusätzliche Schritte ausführen, um es ordnungsgemäß zu implementieren. https://msdn.microsoft.com/en-us/library/bb398930.aspx - Dies ist ein älteres Dokument, sollte aber relevant sein für das, was Sie versuchen zu tun. –

Verwandte Themen