Загрузка виджета Twitter внутри Bootstrap Modal (Firefox)
Я загружаю кнопку "Поделиться твитом" внутри модального бутстрапа. Это отлично работает в Safari и Chrome, но не в Firefox.
https://jsfiddle.net/z4r41638/
Это HTML:
<a href="#" onClick="$('#myModal').modal('show')">Modal</a>
<!-- modal privacy -->
<!-- Modal -->
<div class="modal" id="myModal" tabindex="-1" role="dialog" aria-labelledby="myModalLabel">
<div class="modal-dialog" role="document">
<div class="modal-content">
<div class="modal-header">
<button type="button" class="close" data-dismiss="modal" aria-label="Close"><span aria-hidden="true">×</span>
</button>
<h4 class="modal-title text-center" id="myModalLabel">My Modal</h4>
</div>
<div class="modal-body">
<div id="containerTweet"></div>
</div>
<div class="modal-footer">
<button type="button" class="btn btn-default" data-dismiss="modal">Close</button>
</div>
</div>
</div>
</div>
Это JS:
window.twttr = (function (d, s, id) {
var js, fjs = d.getElementsByTagName(s)[0],
t = window.twttr || {};
if (d.getElementById(id)) return t;
js = d.createElement(s);
js.id = id;
js.src = "https://platform.twitter.com/widgets.js";
fjs.parentNode.insertBefore(js, fjs);
t._e = [];
t.ready = function (f) {
t._e.push(f);
};
return t;
}(document, "script", "twitter-wjs"));
twttr.ready(function (twttr) {
twttr.widgets.createShareButton(
'http://getbootstrap.com',
document.getElementById('containerTweet'), {
text: "Tweet this!!",
size: 'large'
}).then(function (el) {
console.log('Tweet button added.');
});
});
Какие-либо предложения?
1 ответ
Загрузите сценарий widgets.js для события "seen.bs.modal". Используйте метод jQuery .one(), чтобы скрипт загружался только один раз при первом показе модального диалога.
$('#myModal').one('shown.bs.modal', function() {
!function(d,s,id){var js,fjs=d.getElementsByTagName(s)[0],p=/^http:/.test(d.location)?'http':'https';if(!d.getElementById(id)){js=d.createElement(s);js.id=id;js.src=p+'://platform.twitter.com/widgets.js';fjs.parentNode.insertBefore(js,fjs);}}(document, 'script', 'twitter-wjs');
});