1

我正在 Bootstrap 模式中加载分享推文按钮。这在 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.');
    });
});

有什么建议么?

4

1 回答 1

1

在“shown.bs.modal”事件上加载 widgets.js 脚本。使用 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');
});
于 2015-08-27T05:22:50.140 回答