2017-02-24 4 views
0

Ich versuche, ein Terminal in meinem Browser zu erstellen, was ich getan habe, aber ich weiß nicht, wie man es so macht, dass wenn ich einen "Befehl" gebe, antwortet es mit etwas im "Terminal". Hier ist mein Code:Gefälschter Terminal-Browser - wie man darauf reagiert

Also ich möchte nur, dass es mit etwas im Terminal reagiert, wenn ich den Befehl "Hallo Welt" tun.

+0

Auf die gleiche Weise Sie den Wert werden gelöscht ... '$ this.val ('Hallo.'); '. – Santi

+0

Ich will es so, dass es nicht in der Eingabe ist, es ist außerhalb davon, so dass es nicht bearbeitet werden kann @Santi – Gavwin

+0

Scott veröffentlichte eine gute Lösung, während ich antwortete, überprüfen Sie seine Antwort. – Santi

Antwort

2

Sie erhalten einen gefälschten „Konsole“ Ausgabebereich hinzufügen müssen. Also, so etwas?

FYI: $this.focus().val(''); sollte gerade sein: $this.val(''); und <input> Elemente haben keine schließenden Tag (</input>)

// Get reference to the output area 
 
var $out = $("#output"); 
 

 
$("#screen input").focus(); 
 
$("#screen input").on('keyup', function(event) { 
 

 
    if(event.which === 13) { 
 
     // Enter key pressed 
 
     var $this = $(this); 
 
     var val = $this.val(); 
 
     
 
     if(val === "hello world") { 
 
     $out.append(">> Hello Galaxy<br>"); 
 
     } 
 
     
 
     $this.val(''); 
 
    } 
 
});
body { 
 
    font-family:"courier new", monospaced; 
 
    border-radius:5px; 
 
    border:2px solid black; 
 
    height:60vh; 
 
    background-color:rgba(200,200,200, .5); 
 
    padding:10px; 
 
} 
 

 
input { 
 
    background-color:rgb(0, 150, 0); 
 
    color: #ff0; 
 
    font-weight:bold; 
 
    letter-spacing:.2em; 
 
} 
 
#output { 
 
    color:#000; 
 
    background-color:rgba(200,200,200, .25); 
 
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<div id="screen">$&gt;<input></div> 
 

 
<!-- This is the output area --> 
 
<div id="output"></div>

+0

Danke! Das ist, was ich gesucht habe – Gavwin

+0

@Gavwin Hinzugefügt etwas Styling nur zum Spaß! –

+0

Oh cool, danke! @ Scott Marcus – Gavwin

0

Sie können den Wert des Eingangs festgelegt durch einen String in .val() vorbei:

<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<body> 
 
<div id="screen">$&gt;<input></input></div> 
 
<script> 
 
$("#screen input").focus(); 
 
$("#screen input").on('keydown', function(event) { 
 
    if(event.which === 13) {// Enter key pressed 
 
     var $this = $(this), 
 
      val = $this.val(); 
 
     $this.focus().val(''); 
 
     if(val === "hello world") { 
 
      $this.val('hi!') // just set the val 
 
     } 
 
    } 
 
}); 
 
</script> 
 
</body>

+0

Ich will es so, dass es nicht in der Eingabe ist, es ist außerhalb davon, so dass es nicht bearbeitet werden kann. – Gavwin

+0

Scott's Lösung wird dann funktionieren-- nächstes Mal explizit erwähnen, wo Sie möchten, dass die Ausgabe in der Frage angezeigt wird :) –

+0

Ok danke @anied – Gavwin

Verwandte Themen