Я пытаюсь использовать Repo.js на своем веб-сайте, чтобы я мог встроить в него репозитории Github. Я новичок в Javascript и, таким образом, возникли проблемы с настройкой. Это мой код:
<html>
<head>
</head>
<body>
<script src="/jquery.min.js" > </script>
<div id="repo1">
<script src="/repo.js">
$('#repo1').repo({ user: 'darcyclarke', name: 'Repo.js' });
</script>
</div>
</body>
"RepoJS" - это папка, в которой находятся все файлы из ЗДЕСЬ.
Может ли кто-нибудь помочь мне понять, что я делаю, и как это исправить? Большое спасибо
Основная проблема, с которой вы сталкиваетесь, заключается в том, что элементы script
с атрибутами src
не должны содержать никакого содержимого, и если они это сделают, они игнорируются; так что у вас есть:
<script src="/repo.js">
$('#repo1').repo({ user: 'darcyclarke', name: 'Repo.js' });
</script>
Вместо этого вам нужно иметь два отдельных элемента script
:
<script src="/repo.js"></script>
<script>
$('#repo1').repo({ user: 'darcyclarke', name: 'Repo.js' });
</script>
Плохая идея иметь элементы script
в середине страницы, стандартная практика - это все, чтобы они были в head
или в конце body
. Если вы исправите проблему 1, то ваш код должен работать, потому что <div id="repo1">
появляется перед элементом script
, но плохо полагаться на него (кто знает, что делают немытые браузеры), и элементы, определенные после элемент script
не будет в DOM.
Если вы поместите все свои скрипты в конец body
, как и предложил другой ответ, весь DOM будет доступен сразу. Если вы поместите все свои скрипты в head
, их можно загрузить параллельно с завершением загрузки и разбора остальной части страницы, но вам нужно будет:
<script>
$(function() {
$('#repo1').repo({ user: 'darcyclarke', name: 'Repo.js' });
});
</script>
который является ярлыком jQuery для ожидания готовности DOM.
я бы предложил зарегистрировать ваши скрипты в нижней части страницы.
для $('#repo1').repo({ user: 'darcyclarke', name: 'Repo.js' });
вам нужно использовать отдельный тег сценария или записать его в отдельный файл сценария.
так что это должно сработать.
<body>
<div id="repo1"></div>
<script src="/jquery.min.js"></script>
<script src="/repo.js"><script>
<script type="javascript">
$('#repo1').repo({ user: 'darcyclarke', name: 'Repo.js' });
</script>
</body>