Изменить html заголовок с jquery несколько раз - PullRequest
0 голосов
/ 19 апреля 2020

Я хотел бы изменить заголовки документа несколько раз во время загрузки веб-сайта «континентально», например, при выводе данных, для загрузки которых требуется некоторое время.

Этот подход работает в любом месте в теле и нескольких times

<script>
    $(document).attr('title', 'foo');
</script>

Но я должен обойти некоторую защиту Content-Security-Policy, которая запрещает чистую js в html.

Так что моя идея была

( a) Используйте div, который будет показан несколько раз, например

<div class="foo" data-title="1"></div>

(b) вместе с этим в jquery

$('.foo').on('TRIGGER_NAME_HERE', function() {
    $(document).attr('title', $(this).attr('data-title'));
});

Я пробовал все виды TRIGGER_NAME_HERE, например как "шоу" и т. д. c. Даже простое «каждый» на всех элементах .foo не работает.

Лучшее, что я нашел, было («показать»), но это применимо только один раз в конце страницы, но не несколько раз во время страница "поколение".

Есть идеи, что я делаю не так?

1 Ответ

0 голосов
/ 19 апреля 2020
$(document).prop('title', 'test');

Это просто оболочка jQuery для:

document.title = 'test';

Каждый раз, когда новые данные загружаются в DOM страницы, вы можете написать функцию и передать новое значение строки заголовка к нему после получения ответа, что-то вроде

function changeTitle(newTitle) {
    var title = newTitle;
    $(document).prop('title', title);
}

changeTitle('awesome new title');

Так что всякий раз, когда требуется новый заголовок, будь то из запроса ajax, который успешно возвращается, или нажата кнопка, или Элемент div имеет специфицированный c класс 'show' et c, в функцию changeTitle может быть передано новое значение для обновления заголовка

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...