2009-09-03 7 views
7

Ich benutze MarkItUp (http://markitup.jaysalvat.com/) und kann nicht wirklich herausfinden, wie man es bekommen, um das Vorschau-Fenster kontinuierlich zu aktualisieren, wie jedes Zeichen eingegeben wird (oder sogar wenn ein "Leerzeichen" angetroffen wird). Standardmäßig wird der Vorschaubereich nur aktualisiert, wenn die Eingabetaste gedrückt wird.MarkItUp! kontinuierliche Vorschau Aktualisierung ohne zu schlagen geben Sie

Gibt es eine Möglichkeit, dieses Verhalten anzupassen? Die Dokumentation erwähnt einen Schlüssel previewAutoRefresh, aber die Einstellung führt dazu, dass das update-on-enter-Ding nicht schneller ist.

Danke!

Antwort

2

die gleiche Technik wie in this question Gebrauch.

$(".mymarkitupclass").keyup(function(){ 
    $('a[title="Preview"]').trigger('mousedown'); 
});

Beachten Sie, dass dies eine neue Anfrage an den Webserver auf jedem Tastendruck senden, wenn Sie also eine Menge von Benutzern haben, dies eine Menge Hits sein wird.

-2

VorschauAutoRefresh ist standardmäßig aktiviert.

Die Vorschau wird bei jedem Markup-Einfügen aktualisiert (oder die Eingabetaste gedrückt). Der Inhalt der Vorschau wird von Ajax an einen Server-Parser gesendet, um die Markup-Sprache (Textile, Markdown, BBCode usw.) zu rendern. Dies ist bei jedem Tastendruck fast unmöglich (langsam und schwer).

Das markItUp! eingebaute Vorschau ist nur ein Helfer. Sie können es deaktivieren und Ihre eigene Vorschau mit einem clientseitigen Skript (Showdown zum Beispiel) schreiben, wie Sie es mit einem normalen Textbereich tun würden.

:)

+0

Sie beschrieben, was MarkItUp ist. Es ist auf der Website. Wie hilft das? – psychotik

2

Sehr spät, aber eine bessere Lösung ist es, einen Timer (1 sec) für jeden Tastendruck zu starten, so dass die Vorschau nur einmal durchgeführt wird, wenn der Benutzer eine Pause machen (dieser Code-Schnipsel verwendet JQuery Timer-Plugin):

$('#markitup').keydown(function() { 
    $(this).stopTime(); 
    $(this).oneTime(1000, function() { $('a[title="Preview"]').trigger('mouseup'); }); 
}); 

Für weitere Details können Sie den ausgezeichneten Beitrag zum Kodieren des Rades Syntax highlighting über Textarea Vorschau zu sehen.

+0

Dies wirft: Uncaught TypeError: Objekt [Objekt Objekt] hat keine Methode 'stopTime' (und ich habe jQuery-Timer-Plugin -> https://raw.github.com/jbrooksuk/jQuery-Timer-Plugin/master/jquery.timer .js – bluszcz

+0

Ich verwende ein altes jquery-Timer-Plug-In, ich habe das Skript hier kopiert http://pastebin.com/g2dY6hzs –

Verwandte Themen