2010-04-30 4 views
0

J'utilise CEWP (webpart) et mettre ce code là-dedans. Mais ce code ne va pas à l'intérieur de la balise <head>. Je dois d'insérer ce code dans <head> tag,insérer dynamiquement javascript dans <head> tag

<script src="http://code.jquery.com/jquery-latest.js"></script> 

<script type="text/javascript"> 
$("*").each(function() { if ($(this).children().length == 0) { $(this).text($(this).text().replace('Respuesta','Responder')); } }); 
</script> 

Comment puis-je faire cela? Comment ce code va-t-il fonctionner dans le webpart du CEWP?

Répondre

3

Tout d'abord, vous pouvez mettre le code dans le <head> si vous le configurez pour s'exécuter au moment de la préparation du document.

Cependant, cela ne fonctionne toujours pas. Vous itérez plus de tous les tags. Y compris <html>, qui sera le premier sélectionné par $('*').

Donc, vous lisez tout le texte à l'intérieur de l'élément <html> (c'est-à-dire le texte entier du document), faites-y une chaîne de caractères, puis réécrivez-le au html text(). Remplacer tout le contenu du texte et de l'élément précédent de l'élément <html> par une seule chaîne de texte simple. Et détruisant ainsi tous les autres éléments de la page. Oops.

Qu'est-ce que vous voulez faire est de trouver tous les nœuds de texte et faire une chaîne séparée remplace sur elle:

$(document).ready(function() { 
    $('*').each(function() { 
     for (var i= this.childNodes.length; i-->0;) { 
      var child= this.childNodes[i]; 
      if (child.nodeType===3) // TEXT_NODE 
       child.data= child.data.replace(/Respuesta/g, 'Responder'); 
     } 
    }); 
}); 

(Notez qu'il ya encore un tas de cas limites possibles ici avec les champs de formulaire et d'autres éléments où le changement le texte à l'intérieur d'eux peut ne pas faire ce que vous attendez.)

+0

Vous pouvez mettre ce javascript où vous voulez, mais n'oubliez pas _spBodyOnLoadFunctionNames.push ("myFunction") –

Questions connexes