首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >instagram嵌入最初在动态添加到页面时不起作用,但在刷新后才能工作。

instagram嵌入最初在动态添加到页面时不起作用,但在刷新后才能工作。
EN

Stack Overflow用户
提问于 2019-04-21 07:47:59
回答 1查看 1.5K关注 0票数 0

转到:http://staging2.ju.blog.kylebaker.io/

点击汉堡包

单击“时间线”

instagram嵌入只显示灰色徽标,不完全加载。在网络选项卡中观看时,embed.js似乎不加载。

现在,单击“刷新”。

现在,所有东西都装上了。embed.js在那儿。

:/

您可以注意到,http://staging.ju.blog.kylebaker.io上的旧版本运行良好--这显然是因为它是全新的页面加载(我想避免这种情况)。

该主题所依赖的一些可能相关的代码将此页面“加载到”页面中:

代码语言:javascript
复制
    L: function(url, f, err) {
        if (url == xhrUrl) {
            return false;
        }
        xhrUrl = url;
        if (xhr) {
            xhr.abort();
        }
        xhr = $.ajax({
            type: 'GET',
            url: url,
            timeout: 10000,
            success: function(data) {
                f(data);
                xhrUrl = '';
            },
            error: function(a, b, c) {
                if (b == 'abort') {
                    err && err()
                } else {
                    window.location.href = url;
                }
                xhrUrl = '';
            }
        });
    },
    HS: function(tag, flag) {
        var id = tag.data('id') || 0,
            url = tag.attr('href'),
            title = tag.attr('title') + " - " + $("#config-title").text();

        if (!$('#preview').length || !(window.history && history.pushState)) location.href = url;
        Diaspora.loading()
        var state = {d: id, t: title, u: url};
        Diaspora.L(url, function(data) {
            if (!$(data).filter('#single').length) {
                location.href = url;
                return
            }
            switch (flag) {
                case 'push':
                    history.pushState(state, title, url)
                    break;
                case 'replace':
                    history.replaceState(state, title, url)
                    break;
            }
            document.title = title;
            $('#preview').html($(data).filter('#single'))
            switch (flag) {
                case 'push':
                    Diaspora.preview()
                    break;
                case 'replace':
                    window.scrollTo(0, 0)
                    Diaspora.loaded()
                    break;
            }
            setTimeout(function() {
                Diaspora.player();
                $('#top').show();
                comment = $("#gitalk-container");
                if (comment.data('ae') == true){
                    comment.click();
                }
            }, 0)
        })
    },
    preview: function() {
        // preview toggle
        $("#preview").one('transitionend webkitTransitionEnd oTransitionEnd otransitionend MSTransitionEnd', function() {
            var previewVisible = $('#preview').hasClass('show');
            if (!!previewVisible) {
                $('#container').hide();
            }else{
                $('#container').show();
            }
            Diaspora.loaded();
        });
        setTimeout(function() {
            $('#preview').addClass('show');
            $('#container').data('scroll', window.scrollY);
            setTimeout(function() {
                $('#preview').css({
                    'position': 'static',
                    'overflow-y': 'auto'
                });
            }, 500);
        }, 0);
    },

(有关完整文件,请参见:https://github.com/Fechin/hexo-theme-diaspora/blob/master/source/js/diaspora.js)

我看到DOM中加载了脚本标记;为什么不加载呢?感觉一定是我错过了一些简单的东西..。现在是凌晨4点,我一直不停地工作。

(请忽略尘埃落定,这是一个正在进行中的小项目,很多小东西都坏了。)

我尝试过的事情:

  • 在页面中添加要手动加载embed.js的代码。(没有变化-我看到embed.js被加载了,但它不会对结果产生影响)
  • 编辑URL以在“//insta.”之前包含"http:“url (某些人在其他地方的答案中推荐)(没有更改)
  • window.instgrm.Embeds.process()似乎instgrm对象不再存在。(无变动)

这似乎与通过jquery注入的内容有关,但对于具体细节,我有点困惑,我想我会问这个世界,并为下一个可怜的灵魂提供一个存在的答案。

请注意,由于我已经尝试过,答案here似乎没有帮助或相关,虽然可能只是我在凌晨4点消失。

EN

回答 1

Stack Overflow用户

发布于 2019-04-22 18:48:12

问题是,事实上,我已经说过的事情,我只是错过了一些渲染细节,让修改坚持。jQuery执行和剥离脚本标记似乎是问题的根源,在确保window.instgrm.Embeds.process()脚本在正确的地点/正确的时间被请求之后,在适当的时间调用embeds.js脚本就足以解决上面看到的问题。混乱的部分原因是使用hexo,它在节点中使用ejs,而实际上似乎不允许客户端在ejs模板文件中单独执行内联JS。

票数 5
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/55780914

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档