Ошибка при изменении текста с помощью javascript
Я использую google recaptcha в своем проекте django. Но она не является английской. Поэтому я хочу изменить его написание с помощью javascript.
html
{% extends 'base.html' %}
{% block content %}
<div class="form-body">
<div class="row">
<div class="form-holder">
<div class="form-content">
<div class="form-items">
<h1>Registration</h1>
<br><br>
<form class="requires-validation" method="POST" novalidate>
{% csrf_token %}
{{form.as_p}}
<div class="form-button">
<button id="submit" type="submit" class="btn btn-primary">Register</button>
</div>
</form>
</div>
</div>
</div>
</div>
</div>
<script type="text/javascript">
document.querySelector('recaptcha-anchor-label').innerHTML = "I'm not a robot";
</script>
{% endblock %}
После того, как я сделал это, он не применяет html в браузере. Ниже сообщение об ошибке:
Невозможно установить свойства null (установка 'innerHTML')
Проблема в том, что ни один элемент не может быть найден с помощью следующего оператора.
document.querySelector('recaptcha-anchor-label')
В случае, если recaptcha-anchor-label
является id
, перед ним следует использовать #
.
document.querySelector('#recaptcha-anchor-label')
смотрите Document.querySelector()
Если вы все еще сталкиваетесь с ошибкой. Попробуйте сделать следующее Браузер всегда загружает весь HTML DOM сверху вниз. Любой код JavaScript, написанный внутри тегов script (присутствующих в разделе head вашего HTML-файла), выполняется движком рендеринга браузера еще до загрузки всего DOM (различных тегов элементов HTML, присутствующих в теге body). Скрипты, присутствующие в теге head, пытаются получить доступ к элементу с id hello еще до того, как он был отображен в DOM. Таким образом, очевидно, что JavaScript не смог увидеть этот элемент, и поэтому вы видите ошибку нулевой ссылки.
Переместите тег script после всех элементов DOM, то есть внизу, где заканчивается тег body.
Эта проблема должна быть вызвана 'recaptcha-anchor-label', пожалуйста, проверьте, является ли 'recaptcha-anchor-label' "class" или "id", если это class, пожалуйста, добавьте "." перед ним. Если это class, добавьте перед ним "#". например: document.querySelector('.recaptcha-anchor-label').innerHTML = "Я не робот"; или document.querySelector('#recaptcha-anchor-label').innerHTML = "Я не робот";