Hola! hace unos días estuve con el mismo problema, y buscando por internet llegué a la conclusión de que las cargas por ajax no ejecutan los <script />, por lo que hice éste pequeño código y ahora todo funciona a la perfección (está en ti adaptarlo a tu programación ya que está hecho en jquery y no me manejo en el funcionamiento de XMLHttpRequest.
    
Código Javascript
:
Ver original- $(document).ajaxComplete(function(e,xhr,s) { // Al completar cada carga de ajax 
-     var arr = xhr.responseText; 
-     var re = /<script\b[^>]*>([\s\S]*?)<\/script>/gm; // Buscamos todos los bloques de código dentro de <script /> 
-   
-     var match; 
-     var i = 1; 
-     while (match = re.exec(arr)) { 
-       try { 
-         eval(match[i]) // Se evalúan los js 
-       } catch(e) {} 
-        
-       i++; 
-     } 
- }); 
Espero te sirva :D
Saludos!