J'ai examiné toutes les autres questions/solutions liées à ce problème et je ne trouve pas la solution.document.getElementById() renvoie NULL en cas d'appel à partir d'un fichier JS externe
J'ai une page aspx de base avec un bouton. OnClick appelle une fonction JS. la fonction Javascript appelle document.getElementById() qui fonctionne. J'appelle alors une sous-fonction qui vit dans un fichier JA externe et le même appel échoue. Pourquoi?
<%@ Page Language="C#" AutoEventWireup="true" CodeFile="jstest.aspx.cs" Inherits="jstest" %>
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
<title></title>
</head>
<body>
<form id="form1" runat="server">
<div>
<asp:CheckBox runat="server" ID="RunAtStartup" OnClick="function1();" text="Click Me" />
</div>
</form>
<script>
function function1()
{
if (document.getElementById("<%= RunAtStartup.ClientID %>") == null)
alert('function1 null');
else
alert('function1 not null');
function2();
}
</script>
<script src="./function2.js"></script>
</body>
</html>
et le fichier javascript externe function2.js est
function function2() {
if (document.getElementById("<%= RunAtStartup.ClientID %>") == null)
alert('function2 null');
else
alert('function2 not null');
}
Le résultat de cliquer sur le bouton montrera que function1 est « non nulle » et fonction2 est « nul ».
J'ai essayé de transmettre un document en tant que paramètre, cela n'a pas fonctionné. J'ai essayé de faire une fonction2(). Bind (document), cela n'a pas fonctionné. J'ai traversé le débogueur javascript et il semble que l'objet document dans la fonction1 est identique à l'objet document dans la fonction2.
Merci à l'avance Michael
est le nom de votre fichier js function2.js ?? –
Voir la réponse ci-dessous. Vous mélangez essentiellement le code côté serveur '<%= ...%>' dans votre fichier '.js'. – EdSF