Yammer小部件

在交互主页中嵌入Yammer提要是一种相当常见的请求,让我们来看看。

指令

查看Yammer的开发人员文档,可以找到小部件的嵌入代码在这里.提供的代码看起来像这样。

<!DOCTYPE HTML> < HTML>    
Baidu

这个相当简单的javascript是从外部站点加载一些代码(https://c64.assets-yammer.com/assets/platform_embed.js),然后在下面的脚本部分中使用全局变量'yam'引用它

如果将其直接复制到HTML小部件中,页面将正常工作,并且当您第一次保存页面时,小部件将显示出来,但随后加载的页面将显示为空白。在Chrome开发工具中查看控制台会产生类似的错误。

825

这是因为脚本引用了一个名为“yam”的对象,但这是在对象创建之前调用的,因此脚本将失败,小部件将显示为空白。

如何解决

为了解决这个问题,需要添加一些额外的代码来测试浏览器是否知道“yam”是什么。如果有,那太好了!进行!如果没有,那么等待一段时间,再试一次。

如下所示

 
 embedFeed({container: '#embedded-feed', network: 'interactgo.com' // network permalink(见下文)});其他}{setTimeout (loadYammer, 500);}} loadYammer();> < /脚本

在上面修改过的脚本中,相关的yammer代码被抽象为一个函数。上面示例中的第5行检查了yam是否是一个已知变量。如果是的话,那我们就可以照常进行。如果不是,则执行else分支,告诉浏览器在500毫秒内再次调用该函数。

下次运行时(500毫秒后),很有可能脚本已经加载,浏览器知道这个窗口。山药,所以可以继续,但同样,如果不是,那么只需等待500毫秒,然后再试一次。


Baidu
map