Включая сценарий статически в HTML, как один ниже работы:Невозможно прочитать атрибут DOM из сценария загружается динамически
<script type="text/javascript" src="http://meerkatapp.co/widgets/embed.js" data-mute="false" data-social="false" data-cover="default" data-type="square" data-username="jessicadelfino"></script>
Однако, ссылаясь на сценарий динамически не работает.
JavaScript код:
// Create script object
var script = document.createElement("script");
// Configure script with Meerkat data
script.type = "text/javascript";
script.src = "http://meerkatapp.co/widgets/embed.js";
script.setAttribute("data-mute", "false");
script.setAttribute("data-social", "false");
script.setAttribute("data-cover", "default");
script.setAttribute("data-type", "square");
script.setAttribute("data-username", "jessicadelfino");
// Append script object
$("body").append(script);
Вот где происходит ошибка (от http://meerkatapp.co/widgets/embed.js
):
window.currentScript = document.currentScript || (function() {
var scripts = document.getElementsByTagName('script');
return scripts[scripts.length - 1];
})();
main(window.currentScript)
function main(currentScript) {
...
var btnContainerElm = currentScript
var mkBtnUsername = btnContainerElm.getAttribute("data-username")
...
mkBtnUsername = mkBtnUsername.replace("@", '')
Этот код генерирует ошибку: Uncaught TypeError: Cannot read property 'replace' of null
на линии mkBtnUsername = mkBtnUsername.replace("@", '').
Ясно mkBtnUsername
не если атрибут data-username
установлен в скрипте.
Где именно находится пользователь? Пожалуйста, покажи нам все. – Script47
@ user2864740 Да, пожалуйста, прочитайте вопрос. Он имеет значение null, но проблема в том, что код работает отлично, когда он сделан статически, поэтому почему имя пользователя появляется как «null». – Crashalot
@ Script47 Имя пользователя задано в последней строке перед добавлением сценария в тело. Спасибо за вопрос. – Crashalot