2013-03-22 17 views
7

Piszę aplikację internetową wykorzystującą framework Express do generowania prezentacji Impress.js i zastosowania na nich edytora wizualnego. Ustawiłem app.js tylko dla uzyskania pliku .html, ale chcę wstrzyknąć kod javascript z osobnego pliku przed tagiem zamykającym treść pliku .html.Wprowadzić kod javascript do html za pomocą Express

Na przykład, będę miał program obsługi trasy /edit, a następnie skrypt zostanie uruchomiony po tym, jak zostanie on wprowadzony do kodu html.

var express = require('express'); 

var app = express(); 


app.configure(function(){ 
    app.use(express.static(__dirname + '/public')); 
}); 

app.get('/:file', function(req, res) { 
    res.sendfile(__dirname + '/public' + file); 
}); 

app.listen(3000); 
console.log('Listening on port 3000'); 

Wszelkie pomysły na to, jak to osiągnąć, będą mile widziane!

Odpowiedz

8

tylko pomysł, ale można użyć czegoś podobnego cheerio dołączyć skrypt do ciała

app.get('/:file', function(req, res) { 
    var html = fs.readFileSync(__dirname + '/public' + file, 'utf8'); 
    var $ = cheerio.load(html); 
    var scriptNode = '<script>alert("script appended!");</script>'; 
    $('body').append(scriptNode); 
    res.send($.html()); 
}); 
+0

To działa! Ale teraz żadne inne skrypty osadzone w pliku .html nie są wykonywane. Jak mogę to naprawić? Dziękuję Ci. – giokokos

+0

co masz na myśli, że nie zostali straceni? czy to je usunął? czy wystąpił błąd? proszę szczegółowo –

+0

kiedy robię console.log ($. html()); Widzę skrypty, np. w html, ale nie są wywoływane jak dołączony scriptNode. Nie miałem tego problemu z kodem, który mam w opisie. – giokokos

Powiązane problemy