Динамически вставлять 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');
        }
    });
});

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

Другие вопросы по тегам