我的文档中有以下代码:
<a class="twitter-widget" href="url" data-widget-id="138843679974442730">Twitter Timeline</a>
<script>!function(d,s,id){var js,fjs=d.getElementsByTagName(s)[0],p=/^http:/.test(d.location)?'http':'https';if(!d.getElementById(id)){js=d.createElement(s);js.id=id;js.src=p+"://platform.twitter.com/widgets.js";fjs.parentNode.insertBefore(js,fjs);}}(document,"script","twitter-wjs");</script>data-widget-id连接到一种样式。现在,如果网站上出现了主题更改(我替换了所有负责的样式表和图像),那么除了Twitter小部件之外,一切都会发生变化。
由于小部件本身是一个iframe,所以我不能更改附加到它的任何样式表。
是否有一种简单的方法可以更改小部件的样式而不重新加载它(删除标记、创建标记、运行js)?
发布于 2013-12-04 21:49:26
没有直接的方法可以做到这一点,所以我决定引入另一个依赖项,它将延迟onload事件。
<script type="text/javascript" src="//platform.twitter.com/widgets.js"></script>下面是完成这一任务的代码:
var twitterBox = document.getElementsByClassName("twitterBox");
if (!twitterBox || twitterBox.length == 0) { return true; }
var twitterTimeline = document.createElement('a');
twitterTimeline.className = 'twitter-timeline';
twitterTimeline.href = 'url';
twitterTimeline.innerHTML = 'Twitter Timeline';
twitterTimeline.setAttribute('data-widget-id', '388742673974046720');
twitterBox[0].removeAttribute('data-twttr-id');
twitterBox[0].innerHTML = '';
twitterBox[0].appendChild(twitterTimeline);
twttr.widgets.load();发布于 2013-12-04 20:41:02
您可以使用JavaScript为Twitter小部件iframe中的元素设置样式。
首先,您需要iframe嵌套浏览上下文中的活动文档:
var doc = document.getElementById("twitter-widget-0").contentDocument;然后,您可以应用样式(例如):
doc.querySelector(".timeline-header").style["background-color"] = "black";
doc.querySelector(".timeline-header a").style["color"] = "white";示例:http://codepen.io/smockle/pen/IJHnj
https://stackoverflow.com/questions/20385110
复制相似问题