2013-03-20 15 views
6

Tarayıcının kod iletişimini Codemirror'da ctrl-s veya cmd-s olayı ile görüntülemesini nasıl engelleyeceğimi anlamaya çalışıyorum. ExtraKey'leri işe alabilirim, olayı devam ettirmek için çağrı yapmamak için bunu alamıyorum. Geri dönüşü denedim ve belgelere ve örneklere kazdım. Varsayılanların yapılmasını nasıl engelleyeceğini bilen var mı?Varsayılan Olayı Codemirror'ın keymaps ile gerçekleşmesini engelleyin

var editor = CodeMirror.fromTextArea(document.getElementById("code"), { 
lineNumbers: true, mode: "text/html", 
    extraKeys: { 
     "Ctrl-S": function (instance) { 
     alert("your mom"); 
     return false; 
     }, 
     "Cmd-S": function (instance) { 
     alert("my mom"); 
     return false; 
     } 
    } 
}); 
+1

Kişisel kodda belirtildiği gibi, daha iyi bir çözüm yoktur odak editörü açıksa sadece iyi çalışıyor gibi görünüyor. neden Ctrl + S'yi tamamen devre dışı bırakmıyorsunuz? http://stackoverflow.com/questions/11000826/ctrls-preventdefault-in-chrome – aljordan82

+0

İyi bir nokta. Kayıt işlemlerini yönetmek için editörü kullanmayı umuyordum, ama sonunda önerinizi takip etmek zorunda kalacağım. Girdiğin için teşekkürler. – uadrive

+2

Firefox'ta, 'alert', varsayılan kayıt dosyası açılır penceresinin görünmesine neden olan şeydir. Eğer gerçekten orada uyarı çağırmak gerekiyorsa, setTimeout (function() {alert ("bazı anne")}, 1) 'çalışır! – vikki

cevap

4

Bu eski bir sorudur ve çözüm cevap içeride zaten, ama Ctrl-S uygulamak için bir çözüm arayan herkes için/Cmd-S, sanırım kod düzenleyicisi kullanarak: Burada

kod CodeMirrror documentaion

CodeMirror.commands.save = function() { 
    /* Do your stuff */ 
}; 
İlgili konular