Cum să executați funcția javascript în interiorul unui fișier ASPX dintr-un fișier HTML? (Programare, Javascript, Asp.Net, Script Extern)

Hamed Rezaei a intrebat.
a intrebat.

Am un fișier ASPX pentru a procesa unele validări de la utilizatorii mei. Am nevoie să preapreciez câteva coduri și ID-uri pentru ca utilizatorul să lucreze cu datele mele. Am scris un fișier Validation.aspx, care verifică totul despre utilizatorii mei în Page_Load. Vreau să folosesc câteva funcții javascript din fișierele html.

Există câteva funcții javascript în interiorul fișierului ASPX, pe care le creez în timpul execuției din colectarea datelor de către validation.aspx. Page_Load.

Vreau să pun un script în interiorul fișierelor html astfel:

<script src="validation.aspx?a=1234" type="text/javascript" language="javascript" ><script/>

<script> RunValidationAnswer(); <script/>

RunValidationAnswer(); este realizată în timpul execuției din datele utilizatorului (preluate din QueryString [a=1234] ). Nu pot accesa RunValidationAnswer(); în fișierele html.

Dacă aș pune RunValidationAnswer(); într-un fișier JS pot să o accesez, dar pierd operațiile puternice din interior Page_Load din fișierul aspx.

Vă rog să mă ajutați să găsesc o modalitate de a-mi rezolva problema.

Am scris acest exemplu de script în Validation.aspx

<script  type="text/javascript" language="javascript">
function RunValidationAnswer()
{
alert("hi");
}
<script/>

Este complet accesibil în interiorul validare.aspx, dar nu pot accesa această funcție din alte fișiere.

Vreau ceva de genul acesta în interiorul altor fișiere:

<script src="validation.aspx?a=1234" type="text/javascript" language="javascript" ><script/>

<script> RunValidationAnswer(); <script/>

Comentarii

  • încercați să adăugați runat=”server” la script – user2587132
  • runat=”server” nu este un răspuns! a făcut multe probleme noi! –  > Por Hamed Rezaei.
1 răspunsuri
Michael B.

Ați setat tipul de conținut al paginii ASPX să fie javascript pentru ca browserul să știe că este un fișier Javascript, pentru că în mod implicit tipul de conținut al oricărui aspx este HTML

Response.ContentType = "text/javascript"

** adăugați ; pentru C#

Validation.aspx ar trebui să fie un fișier gol, cu excepția acestei linii

<%@ Page Language="C#" AutoEventWireup="true" CodeFile="ScriptTest.aspx.cs" Inherits="ScriptTest" %>

Iar în fișierul de cod, scrieți JS prin response.write

public partial class ScriptTest : System.Web.UI.Page
{
    protected void Page_Load(object sender, EventArgs e)
    {
        Response.ContentType = "text/javascript";

        Response.Write("alert('javascript works')");
    }
}

De asemenea, ați putea folosi doar o pagină ASPX – fără fișier de cod – astfel

<%@ Page Language="C#" AutoEventWireup="true" ContentType="text/javascript" %>
alert("script works <%=DateTime.Now.ToString() %>");

Comentarii

  • este tag-ul meu de pagină:<%@ Page Language=”C#” AutoEventWireup=”true” ContentType=”text/javascript” CodeFile=”ScriptTest.aspx.cs” Inherits=”ScriptTest” %> –  > Por Hamed Rezaei.
  • Dacă nu este așa, atunci ar putea fi o problemă de sintaxă javascript… Ați putea posta eroarea exactă pe care o primiți… încercați un simplu alert(”) în validation.aspx pentru a vedea dacă funcționează… –  > Por Michael B..
  • Scriu un script în interiorul tag-ului <script><script/> în Validation.aspx, acesta funcționează corect în interiorul validation.aspx, dar nu pot accesa funcțiile din alte fișiere! –  > Por Hamed Rezaei.
  • OH, trebuie să aveți fișierul ASPX fără niciun cod de execuție, cu excepția primei linii <%@ Page … și în codul din spate să scrieți codul JS fără etichete script și folosind response.write –  > Por Michael B..
  • Am scris tag-ul Page mai sus aici, am un fișier cu doar <%@Page… dar nu funcționează încă –  > Por Hamed Rezaei.