# Mit innerHTML in eine bestimmte HTML-Datei schreiben



## marlem (15. Feb 2020)

Hallo,

in meiner *index.html*-datei steht unter anderem folgendes drin:

```
<input type="button" value="Analyse" accesskey="n" onclick="HauptspracheDerWebseite()" title="Analyse starten" style="padding:10px;width:90%; font-size:120%;">
```

in meiner *AChecker_Ergebnis.html* steht unter anderem folgendes drin:

```
<body>
<p id="AnalyseErgebnis">

</p>
</body>
```

Die Javascriptfunktion sieht wie folgt aus:

```
function [B]HauptspracheDerWebseite()[/B]{
    vLangWeb = document.documentElement.lang;
    if (isBlank(vLangWeb) == true){
    document.getElementById("AnalyseErgebnis").innerHTML += "FEHLER: Die Sprache der Webseite wurde nicht angegeben!";
    }
}
```

Frage:
Warum klappt es nicht, dass die Javascriptfunktion *HauptspracheDerWebseite()* in die Datei *AChecker_Ergebnis.html* schreibt?


----------



## httpdigest (15. Feb 2020)

Öffne einfach die DevTools des jeweiligen Browsers. Wenn du sonst keine Libs einbindest, dann wird er dir folgendes ausgeben:

```
Uncaught ReferenceError: isBlank is not defined
```
Mein Test-HTML:

```
<html>
<body>
<input type="button" value="Analyse" accesskey="n" onclick="HauptspracheDerWebseite()" title="Analyse starten" style="padding:10px;width:90%; font-size:120%;">
<p id="AnalyseErgebnis">
</p>
<script>
function HauptspracheDerWebseite(){
    vLangWeb = document.documentElement.lang;
    if (isBlank(vLangWeb) == true){ // <- Exception hier!!!
        document.getElementById("AnalyseErgebnis").innerHTML += "FEHLER: Die Sprache der Webseite wurde nicht angegeben!";
    }
}
</script>
</body>
</html>
```


----------



## mihe7 (15. Feb 2020)

@marlem Ich verstehe ehrlich gesagt gar nicht, wie Du auf die Idee kommst, dass das funktionieren sollte. Die index.html und die AChecker_Ergebnis.html stehen doch in gar keinem Bezug zueinander - zumindest sehe ich hier keinen.

Die JavaScript-Funktion wird von einem Button aufgerufen, der sich in index.html befindet. Daher referenziert document auch das Objekt, das die Datei "index.html" repräsentiert.


----------



## marlem (15. Feb 2020)

httpdigest hat gesagt.:


> Öffne einfach die DevTools des jeweiligen Browsers. Wenn du sonst keine Libs einbindest, dann wird er dir folgendes ausgeben:
> 
> ```
> Uncaught ReferenceError: isBlank is not defined
> ...



Sorry, habe ich vergessen:

```
//Ist ein String leer
function isBlank(str) {
    return (!str || /^\s*$/.test(str));
}
```


----------



## httpdigest (15. Feb 2020)

Dann gilt nur noch das, was @mihe7 geschrieben hat.


----------



## marlem (15. Feb 2020)

mihe7 hat gesagt.:


> @marlem Ich verstehe ehrlich gesagt gar nicht, wie Du auf die Idee kommst, dass das funktionieren sollte. Die index.html und die AChecker_Ergebnis.html stehen doch in gar keinem Bezug zueinander - zumindest sehe ich hier keinen.
> 
> Die JavaScript-Funktion wird von einem Button aufgerufen, der sich in index.html befindet. Daher referenziert document auch das Objekt, das die Datei "index.html" repräsentiert.



Ich habe eigentlich gedacht, dass er nach der Id *AnalyseErgebnis* sucht:

```
document.getElementById("AnalyseErgebnis").innerHTML += "FEHLER: Die Sprache der Webseite wurde nicht angegeben!";
```

Aber gut, Dein Argument leuchtet ein!
Was muss ich tun, damit es klappt?


----------



## mihe7 (15. Feb 2020)

Du müsstest erstmal den Zusammenhang zwischen den beiden Dateien erklären: ist das eine Dokument im anderen eingebettet oder befinden sie sich in verschiedenen Browser-Fenstern (bzw. -Tabs).


----------



## marlem (16. Feb 2020)

Die index.html-Datei wird auf Barrierefreiheit überprüft.
In die *AChecker_Ergebnis.html-Datei *soll ein Report von Allen Überprüfungen hineingeschrieben werden.


----------



## krgewb (9. Mrz 2020)

Mit innerHTML kannst du z.B. dem Nutzer einen Text anzeigen lassen. Wenn er den Browser-Tab neulädt, ist alles wieder beim Alten. 
Die html-Datei an sich wird nicht manipuliert.


----------

