Загрузка виджета 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">&times;</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');
});
Другие вопросы по тегам