Ich benutze ein WebView mit einer JavaScript-Schnittstelle. Alles, was ich tun möchte, ist das Ändern der inneren HTML eines Spanes, wenn einige Checkboxen markiert sind.Kann Javascript innerHtml nicht mit WebView arbeiten
Unten ist ein Ausschnitt eines Strings, den ich in strings.xml habe. Das Formular ruft diese Funktion onSubmit auf und sollte nicht fortgesetzt werden, wenn es nicht übergeben wird. Das Problem ist, dass ich den inneren HTML nicht arbeiten kann (wird jedes Mal wahr zurückgegeben).
Dies funktioniert
<script type=\"text/javascript\" language=\"javascript\">
function pass() {
return javaInterface.checkboxPass();
/*
if(passed) {
//change the instructions
document.getElementById(\"txtInstructions\").innerHTML = \'Loading Website...\';
}
return passed;
*/
}
</script>
Dies gibt true zurück, jedes Mal
<script type=\"text/javascript\" language=\"javascript\">
function pass() {
var passed= javaInterface.checkboxPass();
if(passed) {
//change the instructions
document.getElementById(\"txtInstructions\").innerHTML = \'Loading Website...\';
}
return passed;
}
</script>
Dies ist die Spanne in den Körper des Dokuments
<span id=\"txtInstructions\">%1$s</span>
Was mache ich falsch?
Alle Sie Grund sind Backslash-escaping Anführungszeichen? Ansonsten ist dies kein Standard HTML/Javascript. – slebetman
Was ist der Code für 'checkboxPass'? Wenn es ein Objekt oder einen String zurückgibt, wird das 'if (pass)' immer als wahr ausgewertet. Zum Beispiel wird 'if (" false ")' so weit wie ich weiß als wahr gewertet. Es wird nur falsch sein, wenn checkboxPass false, null oder undefined zurückgibt. – tjameson
@tjameson javaInterface.checkboxPass() gibt einen booleschen Wert – jax