2016-03-23 13 views
0

django-pipeeline ile django sürüm 1.82 kullanıyorum. Ben html adından belirli bir javascript işlevi çağırırım. Django-pipeline'de javascript işlevlerinin ad yönetimi nasıl engellenir?

<form class="navbar-form navbar-right vcenter" 
action="javascript:search();" role="search" id='searchform'> 

Maalesef sıkıştırılmış js dosyasında, fonksiyonun adı değiştirilir ve dolayısıyla aykırı işlevselliği workig değildir. Bu işlev için aynı adı nasıl koruyabilirim veya html'deki js işlevine yapılan başvuruyu nasıl değiştirebilirim?

Ben yuglify yüklemiş ve kullandığım ayarlar

PIPELINE_CSS = { 
'allstyles': { 
    'source_filenames': (
     'css/application.css', 
     'feedback/css/feedback-form.css', 
    ), 
    'output_filename': 'css/nifty.css', 
    'extra_context': { 
     'media': 'screen,projection', 
    }, 
}, 
} 

PIPELINE_JS = { 
'actions': { 
    'source_filenames': (
     'js/nifty.js', 
     'feedback/js/feedback-form.js', 
    ), 
    'output_filename': 'js/nifty.js', 
} 
} 
STATICFILES_STORAGE = 'pipeline.storage.PipelineStorage' 
PIPELINE_JS_COMPRESSOR = 'pipeline.compressors.yuglify.YuglifyCompressor' 
PIPELINE_DISABLE_WRAPPER = True 
PIPELINE_ENABLED=True 

cevap

1

Eğer search() küresel bir işlevi olduğuna emin misin nedir? Emin olmak için bunu window değişkene atayabilirsiniz:

window.search = function() { 
    ... 
} 
1

Ben çevresinde başka bir yol yapardım.

<form ... action="/nojs.html" ... id='searchform'> 

ve formdaki submit olay kesmek

.
(function(){ 
    var sf = document.getElementById('searchform'); 
    sf.addEventListener('submit', function(ev){ 
     ev.preventDefault(); 
     // do here whatever "search()" needs to do 
    }); 
})(); 

Eğer window ad içine bir şey eklemek gerekmez Bu şekilde

, minified fonksiyon isimlerinin bağımsızdır ve özürlü JS bir tarayıcı okunabilir bir hata sayfası alır.

İlgili konular