2010-04-30 3 views
0

Я использую CEWP (webpart) и помещаю там этот код. Но этот код не входит в тег <head>. Мне нужно вставить этот код в <head> тегединамически вставлять javascript в <head> тег

<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> 

Как я могу это сделать? Как этот код будет работать в веб-части CEWP?

ответ

3

Во-первых, вы можете поместить код в <head>, если вы установите его для запуска во время готовности документа.

Однако, это все еще не сработает. Вы повторяете все теги. В том числе <html>, который будет первым, выбранным $('*').

Итак, вы читаете весь текст внутри элемента <html> (т. Е. Весь текст документа), замените на нем строку, а затем запишите его обратно в html text(). Замена всего содержимого текста и элементов элемента <html> одной простой текстовой строкой. И тем самым уничтожая каждый другой элемент на странице. К сожалению.

То, что вы хотите сделать, это найти каждый текстовый узел и сделать отдельную строку заменить на нем:

$(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'); 
     } 
    }); 
}); 

(Примечание Есть еще куча возможных крайних случаев здесь с полями формами и другими элементами, где меняется текст внутри них может не делать то, что вы ожидаете.)

+0

Вы можете поместить этот javascript везде, где хотите, но не забудьте _spBodyOnLoadFunctionNames.push («myFunction») –

Смежные вопросы