(请参阅下面我的编辑以获得更好的解决方案)这似乎对我有用并且不需要太多时间来实现:
在 widgets.js 中,找到
function Z(a,b,c)
在函数 Z 中更改此设置:
d.href=twttr.widgets.config.assetUrl()+"/"+b
像这样的事情:
d.href=b
assetUrl 只是获取文件(例如 CSS 文件)的基本 URL,该文件位于 Twitter 拥有的域中。 b 将是您在整个 JS 中指定的路径(例如 embed/timeline.4d0955f67d15e8ef0601086ae2d5fcd0.default.css )。将所有 CSS(例如时间线.xyz.default.css)上传到您想要的位置,然后您可以自定义这些文件并将它们保存在您自己的服务器上。您无法通过简单地将规则添加到服务器上的 CSS 文件来修改 CSS,因为 Twitter 提要位于来自不同域的 iframe 中。不允许使用这种类型的源(即不是来自您自己的域)修改 iframe 中的 CSS,以防止劫持类型的问题,但如果 iframe 引用您自己的服务器上的 CSS,那么您可以修改内容。
您可能还需要检查其他一些内容,以确保拥有所有必需的文件。您还应该获得 Twitter CSS 文件中引用的 sprite.png。我能够通过这种方式自定义 CSS,并且效果很好。
Edit:
我在 IE7/6 和 Jelly Bean 中的 Chrome 中遇到了上述解决方案的问题,因此找到了一个更好的解决方案,可以让您将自己的自定义 CSS 文件注入到 iframe 中,同时在自己的域中保留所有 Twitter 的 CSS。我从新的 widgets.js 中添加了以下内容:
;d=c.createElement("link"),
d.id="custom-css-1",
d.rel="stylesheet",
d.type="text/css",
d.href="http://mydomain.com/css/timeline.custom.css";
c.getElementsByTagName("head")[0].appendChild(d);
之后立马
c.getElementsByTagName("head")[0].appendChild(d)
在 widgets.js 中以以下开头的行
provide("tfw/widget/timeline"
(再次在函数 Z 中)这似乎工作得更好,您所需要的只是 widgets.js 的副本http://platform.twitter.com/widgets.js http://platform.twitter.com/widgets.js.