Динамически вставлять JavaScript в тег <head>
Я использую CEWP (веб-часть) и помещаю этот код там. Но этот код не идет внутрь <head>
тег. Мне нужно вставить этот код в <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?
1 ответ
Во-первых, вы можете поместить код в <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');
}
});
});
(Обратите внимание, что здесь все еще есть множество возможных крайних случаев с полями формы и другими элементами, в которых изменение текста внутри них может не соответствовать вашим ожиданиям.)