我最近解决了一个折磨了我好久但是解决方法却只是添加两三行代码的问题。我没有在网上找到合适的解决方案,最后是我根据官方网站和很多的帖子里的部分代码得到的启发,尝试了很久之后得到的解决方法。因为过程实在是折磨,网上又有很多不同思路的方法可能会误导导致浪费很多时间,所以我特地在此分享我遇到的问题与解决方案,如果你的项目也碰到了像我一样的问题,那么很高兴我的解决方法能帮到你。

我添加内嵌推特时间线(Embedded Timeline)的方法

因为有不知一种的添加时间线的方法,为了方便解释我解决的问题,先在此解释我用到的方法。

推特的help官方网站中解释的很清楚,我将重点步骤截图如下:

其中第三步中提到的自定义高度、颜色等在此官方链接(https://dev.twitter.com/web/embedded-timelines)中有详细解释,不再赘述。

以https://twitter.com/TwitterDev为例子按照上面步骤,你会得到如下代码

<a class="twitter-timeline" href="https://twitter.com/TwitterDev?ref_src=twsrc%5Etfw">Tweets by TwitterDev</a> <script async src="https://platform.twitter.com/widgets.js" charset="utf-8"></script>

在Angular 5的项目中,你不能将script部分的代码连同前面a部分的一起粘贴在相应位置,只需要将a粘贴在所需位置,再将script部分粘贴在index.html文件中即可。

其中Tweets by TwitterDev并不是必须要写的,只是在内嵌内容出现前会出现这段有下划线的文字,点击既是相关推特界面。

问题

在一般的网页中,内嵌推特时间线的工作就结束了,但是我在做完这些工作后发现首次加载对应的界面时无法显示该内容,只有带链接的文字。然后刷新该界面就能显示想要的内容了。出现这种情况的原因大概是:写在index.html中的script内容没有即时被识别导致这段内容没有实际作用,而当在此刷新该界面时,此内容因为已经被识别过了就能正常作用了。(我不确定原因解释的是否正确,如果有人知道正确原因,拜托留个言给我好吗?

解决方法

先直接给出我的解决方法:

我在想要添加推特时间线的component中的TypeScript文件的ngAfterViewInit()中添加了以下代码

if (window['twttr']) {
window['twttr'].widgets.load();
}

原理就是:让它自己在网页加载出来后自动再加载一遍。此灵感来源于推特官网Docs中JavascriptAPI中Initializing embedded content after a page has loaded界面内容。

在网上找到这个方法之前,我尝试了很多网上提到的各种方法,可能是Angular 5的使用率不大加上同时需要内嵌推特时间线的人不多,所以很少有人遇到和我一样的这个问题吧。

其他的思路

刚开始时,我们的项目中使用了node中ng4-twitter-timeline模块,附上github上的代码链接https://github.com/lokers/ng4-twitter-timeline

在本地试验时没有任何问题,但是在上线项目compile时出现了问题,所以我们也考虑过自己写一个类似的component使用,但是我的技术不行,最终没有找到这个思路的解决方法。

非常欢迎知道解决方法的读者在此留言!

如何解决Angular网页内嵌推特时间线无法正常显示的更多相关文章

  1. 浅谈html5网页内嵌视频

    更好的阅读体验:浅谈html5网页内嵌视频 如今在这个特殊的时代下:flash将死未死,微软和IE的历史问题,html5标准未定,苹果和谷歌的闭源和开源之争,移动互联网的大势所趋,浏览器各自为战... ...

  2. HTML-图片热点、网页内嵌、网页拼接、快速切图

    图片热点 规划出图片上的一个区域,可以做出超链接,直接点击图片区域就可以完成跳转的效果.与图片链接不同,热点是图片上的某一个区域或多个区域. 我们用魔兽世界图片来做一个图片热点,点击logo.区域和不 ...

  3. django2 用iframe标签完成 网页内嵌播放b站视频功能

    前言: 给自己的网站中加入视频资源,有两种方法,一种是用iframe标签引用外站资源,另一种则使用video标签,获取站内资源进行视频播放.其中前者顾名思义,是将视频资源上传到视频网站中,然后通过引用 ...

  4. 使用MailKit发送带有内嵌图片的邮件且图片不显示成附件

    使用MailKit发送带有内嵌图片的邮件且图片不显示成附件 参考文章:MailKit---发送邮件 注意 在邮件客户端中是否显示内嵌图片为附件依据不同邮件有所不同,暂经测试Outlook和qq不显示为 ...

  5. 网页内嵌html遇到的问题

    在项目中遇到个问题 充值功能是点击一个按钮这个按钮会弹出模态框,输入充值金额会执行一段脚本自动提交数据到https://openapi.alipay.com/gateway.do上 结果:本网页跳转到 ...

  6. ios平台appstore不支持网页内嵌app解决方案

    苹果一直拒绝 UIWebView 内嵌 HTML5 页面的 iPhone.iPad APP应用上架到 App Store,建议这样的APP去做成Safari的Web应用.但是,苹果的审核人员只从界面. ...

  7. 【转】浅谈html5网页内嵌视频

    转自 http://www.pchou.info/web/2014/01/30/52ea01e13a7f1.html

  8. 23. Angular 中用 a 标签 href 路由时在浏览器中显示异常 "%2F" 路由失败问题1

    这个是angular1.6默认给hash路由上添加了!(感叹号),导致出错,修改方法如下(添加配置,去掉默认前缀感叹号):   angular.module('routingDemoApp',['ng ...

  9. 22. Angular 中用 a 标签 href 路由时在浏览器中显示异常 "%2F" 路由失败问题

    转自:https://blog.csdn.net/duansale/article/details/77455355 <a href="#/index">index&l ...

随机推荐

  1. windows下scrapy安装问题,以及Twisted安装报错(error: Microsoft Visual C++ 14.0 is required.)完美解决办法

    方法1(通常是失败的) 1. 命令行执行: pip3 install scrapy 不管是网络问题也好,缺少相关的包也好,用这条命令安装scrapy我就没成功过...难受 方法2(成功) 手动安装相关 ...

  2. java源码equals和hashCode

    equals public boolean equals(Object anObject) { if (this == anObject) { return true; } if (anObject ...

  3. Python基础——0前言

    python虽然这几年才兴起,但是已经是一门“老”语言了. python的诞生历史也很有趣.Python的创始人为Guido van Rossum(龟叔).1989年圣诞节期间,在阿姆斯特丹,Guid ...

  4. 爬虫系列二(数据清洗--->xpath解析数据)

    一 xpath介绍 XPath 是一门在 XML 文档中查找信息的语言.XPath 用于在 XML 文档中通过元素和属性进行导航. XPath 使用路径表达式在 XML 文档中进行导航 XPath 包 ...

  5. JSP七大动作

  6. 替换空格[by Python]

    题目: 请实现一个函数,将一个字符串中的空格替换成“%20”.例如,当字符串为We Are Happy.则经过替换之后的字符串为We%20Are%20Happy. 1.使用python自带的repla ...

  7. 【题解】洛谷P3660 [USACO17FEB]Why Did the Cow Cross the Road III

    题目地址 又是一道奶牛题 从左到右扫描,树状数组维护[左端点出现而右端点未出现]的数字的个数.记录每个数字第一次出现的位置. 若是第二次出现,那么删除第一次的影响. #include <cstd ...

  8. mysql 报错ERROR 1820 (HY000): You must reset your password using ALTER USER statement before executin

    解决办法1. 修改用户密码mysql> alter user 'root'@'localhost' identified by 'youpassword'; 或者 mysql> set p ...

  9. 学习笔记《Mustache》模板

    Mustache 是一款经典的前端模板引擎,在前后端分离的技术架构下面,前端模板引擎是一种可以被考虑的技术选型,随着重型框架(AngularJS.ReactJS.Vue)的流行,前端的模板技术已经成为 ...

  10. drawer

    import 'package:flutter/material.dart'; class DrawerPage extends StatefulWidget { @override _DrawerP ...