Почему добавление тега <script> во время выполнения не загружает файл javascript? (с реакцией .js)
У меня есть этот response.js script, который добавляет следующий код в html
// returned by the render method
React.DOM.div({
dangerouslySetInnerHTML: {
__html: '<script type="text/javascript" async="" src="//myapp.disqus.com/embed.js"></script>'
}
})
Теперь мой html выглядит так:
<script type="text/javascript" async="" src="//myapp.disqus.com/embed.js"></script>
Что кажется идеальным, но проблема в том, что он не загружает script.
Тег script вставляется в середину тела, вложенного в некоторые другие теги div.
В чем может быть проблема?
Благодаря
Ответы
Ответ 1
Рендеринг тега script на странице с ответом - это не правильное решение - я не могу заставить его работать с JSX, я предполагаю, что здесь применяется то же самое. Не уверен, почему, но просто добавьте простой способ javascript:
var script = document.createElement("script");
script.src = "//myapp.disqus.com/embed.js";
script.async = true;
document.body.appendChild(script);
Поместите это в componentWillMount вашего корневого компонента.
Ответ 2
Я только что добавил Disqus в свое приложение React. Я использовал модуль "реакция-disqus-thread" и быстро и быстро его запускал.
Здесь он находится на github: https://github.com/mzabriskie/react-disqus-thread
И npm: https://www.npmjs.com/package/react-disqus-thread
Компонент принимает следующие реквизиты:
- shortname - это "myapp" в //myapp.disqus.com/embed.js
- identifier - уникальный blogId, который может идентифицировать ваш пост в блоге, если URL-адрес изменится.
- title
- url - если вы этого не сделаете, модуль обнаружит URL-адрес и предоставит его.
Ответ 3
Какой браузер вы протестировали? Если вы используете async = "true" в тэге script, он не будет блокироваться. Но это поддерживается только несколькими браузерами.