HTML – 如何在没有转推的情况下嵌入Twitter时间线?

HTML – 如何在没有转推的情况下嵌入Twitter时间线?,第1张

概述我在我的网站上嵌入了Twitter时间线。然而我的转推正在那里展示,我不希望他们。 有没有简单的方法来关闭它们?我似乎找不到任何东西 我的搜索查询来自:myaccount。我也尝试过:myaccount -RT,没有运气。我可以使用搜索小部件隐藏转推,但不会显示超过一周的推文,这在我的情况下是不可接受的。 通过一些CSS魔术隐藏推文也行。我设法找出手动插入 div.timeline-Tweet-- 我在我的网站上嵌入了Twitter时间线。然而我的转推正在那里展示,我不希望他们。

有没有简单的方法来关闭它们?我似乎找不到任何东西

我的搜索查询来自:myaccount。我也尝试过:myaccount -RT,没有运气。我可以使用搜索小部件隐藏转推,但不会显示超过一周的推文,这在我的情况下是不可接受的。

通过一些CSS魔术隐藏推文也行。我设法找出手动插入

div.timeline-Tweet--isRetweet {  display: none !important;}

在嵌入式HTML的CSS中有诀窍,但我无法以编程方式进行。

解决方法 适应我的评论

要使用Hacky样式注入,只需在脚本标记中放入以下代码即可。这会将https://platform.twitter.com/Widgets.Js脚本标记放入您的页面,因此您不再需要将其作为单独的脚本标记。

// Widgets script loading taken from Twitterwindow.twttr = (function (d,s,ID) {    var Js,fJs = d.getElementsByTagname(s)[0],t = window.twttr || {};    if (d.getElementByID(ID)) return;    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.events.bind("rendered",function (event) {        var WidgetFrame = event.target;        var retweets = WidgetFrame.contentdocument.querySelectorAll('div.timeline-Tweet--isRetweet');        retweets.forEach(function (node) {            if (node.parentNode) { // (in)sanity check                node.parentNode.style = 'display: none;' // hIDe entire parent li tag            }        })    });});

备注它

我们将父节点作为每个div.timeline-Tweet – isRetweet位于li标签中,它为您提供边框,因此您在隐藏转推后会留下一些奇怪的双边框。我认为没有办法通过css选择器到达父级,所以我们必须用代码来做到这一点。

另一个评论

黑客攻击强烈依赖于时间线内容的结构方式,而这些内容可能会在没有Twitter通知的情况下发生变化,因此您在这里冒险,有一天您会醒来,并且在您的时间线中转发回来;)

更新

好的,这里是v2,它听取了关于ol的更新…但是在写完之后我开始理解弗兰肯斯坦博士的感受;)

window.twttr = (function (d,function (event) {        var frameDoc = event.target.contentdocument;        // initially hIDe retweets        var hIDeRetweets = function () {            var retweets = frameDoc.querySelectorAll('div.timeline-Tweet--isRetweet');            retweets.forEach(function (node) {                if (node.parentNode && node.parentNode.style !== 'display: none;') { // (in)sanity check                    node.parentNode.style = 'display: none;' // hIDe entire parent li tag                }            });        };        hIDeRetweets();        // Twitter Widget emitts no events on updates so we hook up ourselves to ol element to Listen on it for additions of children        var watcher = new MutationObserver(function (mutations) {            // check whether new tweets arrived            var hasNewTweets = mutations.some(function (mutation) {                return mutation.addednodes.length > 0;            });            if (hasNewTweets) {                hIDeRetweets(); // rescan all tweets as it is easIEr            }        });        watcher.observe(frameDoc.querySelector('ol.timeline-TweetList'),{ childList: true });    });});
总结

以上是内存溢出为你收集整理的HTML – 如何在没有转推的情况下嵌入Twitter时间线?全部内容,希望文章能够帮你解决HTML – 如何在没有转推的情况下嵌入Twitter时间线?所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/1110067.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-29
下一篇 2022-05-29

发表评论

登录后才能评论

评论列表(0条)

保存