2017-07-09 1 views
0

Ich gebe Ihnen ein Beispiel von dem, was ich versuche zu tun.Verwenden von Javascript, um HTML-Eingaben zu schreiben, die Javascript-Funktionen aufrufen

In Javascript:

document.innerHTML += "<input type='button' id='moveButton' value='a' onclick='webInput('a');'>" 

Das Problem ist, dass die HTML geschrieben werden zwei Ebenen von Zitaten hat, und ich kann nicht herausfinden, wie die zweite Ebene der Zitate hier zu formatieren:

webInput('a') 

In meiner Javascript-Datei habe ich eine Funktion schreiben Sie die Eingaben in das HTML am Ende der Funktion, dann klicken Sie auf die Eingaben ruft die nächste Funktion, bis schließlich die Eingaben neu geschrieben werden.

Ich weiß, die Antwort hat wahrscheinlich etwas mit Escape-Zeichen zu tun, aber ich war verwirrt, wie man sie formatiert, weil der Text zwischen JavaScript und HTML, die verschiedene Escape-Zeichen verwenden, zurückgegeben wird.

+2

Verwenden Sie einfach nicht inline JavaScript überhaupt :) – Andreas

Antwort

1

Sie können Ihre Schaltfläche innerhalb des JavaScript-Codes erstellen und die Methode darin definieren.

var button = document.createElement('button'); 
button.addEventListener('click',function(){ 
    doSomething(); 
}); 
//This method adds your button to body 
document.body.appendChild(button) 
+0

Vielen Dank für die nützlichen Ratschläge. – Spralg

+0

Ich bin froh zu hören, dass :) Wenn Sie möchten, können Sie diese Antwort als akzeptiert markieren, indem Sie auf "Tick" -Taste –

-1

Wenn Sie Anforderungen haben diese auf das Dokument als Zeichenfolge hinzuzufügen, müssen Sie Anführungszeichen entkommen:

"<input type='button' id='moveButton' value='a' onclick='webInput(\"a\")'>" 

große Antwort mit Regeln für die Flucht hier: https://stackoverflow.com/a/16134942/5727598

Auch Sie sollte die Eigenschaft innerHtml für das Element verwenden, in dem Sie die Zeichenfolge übergeben möchten, aber stellen Sie sicher, dass der gesamte Inhalt dort gelöscht wird;

Wenn keine Anforderungen, Button erstellen und an den Körper upend:

var input = document.createElement('input'); 

input.type = 'button'; 
input.id = 'moveButton'; 
input.value = 'a'; 

button.addEventListener('click', function(){ 
    webInput(this.value); //if you need to pass input value as parameter 
}) 

document.body.appendChild(input); 
+0

Das hat funktioniert, danke. – Spralg

+0

@Spralg gut! Bitte akzeptiere meine Antwort, danke – rossoneri

Verwandte Themen