转到:http://staging2.ju.blog.kylebaker.io/
点击汉堡包
单击“时间线”
instagram嵌入只显示灰色徽标,不完全加载。在网络选项卡中观看时,embed.js似乎不加载。
现在,单击“刷新”。
现在,所有东西都装上了。embed.js在那儿。
:/
您可以注意到,http://staging.ju.blog.kylebaker.io上的旧版本运行良好--这显然是因为它是全新的页面加载(我想避免这种情况)。
该主题所依赖的一些可能相关的代码将此页面“加载到”页面中:
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点,我一直不停地工作。
(请忽略尘埃落定,这是一个正在进行中的小项目,很多小东西都坏了。)
我尝试过的事情:
window.instgrm.Embeds.process()似乎instgrm对象不再存在。(无变动)这似乎与通过jquery注入的内容有关,但对于具体细节,我有点困惑,我想我会问这个世界,并为下一个可怜的灵魂提供一个存在的答案。
请注意,由于我已经尝试过,答案here似乎没有帮助或相关,虽然可能只是我在凌晨4点消失。
发布于 2019-04-22 18:48:12
问题是,事实上,我已经说过的事情,我只是错过了一些渲染细节,让修改坚持。jQuery执行和剥离脚本标记似乎是问题的根源,在确保window.instgrm.Embeds.process()脚本在正确的地点/正确的时间被请求之后,在适当的时间调用embeds.js脚本就足以解决上面看到的问题。混乱的部分原因是使用hexo,它在节点中使用ejs,而实际上似乎不允许客户端在ejs模板文件中单独执行内联JS。
https://stackoverflow.com/questions/55780914
复制相似问题