很多博客都可以自己添加修改一些代碼,但是作為博客平台來說,可能為了安全考慮,很多時候要過濾一些特性,比如:新浪微博的掛件是iframe形式的,但是博客園不支持iframe。經過一些嘗試,最終有了下面兩種解決辦法:
首先先在公告中寫一個空div,方便我們插入新建的iframe,省的用class選來選去的麻煩:
<div id="weiboIframe">
</div>
1、在公告中直接用innerHTML插入iframe代碼:
innerHTML是很很簡單的,從新浪微博的配置中,配好你自己想要的樣式,然后他會自動生成一段html代碼,類似下面這樣的:
<iframe width="100%" height="100" class="share_self" frameborder="0" scrolling="no" src="http://widget.weibo.com/weiboshow/index.php?width=0&height=100&fansRow=1&ptype=1&speed=0&skin=1&isTitle=1&noborder=0&isWeibo=0&isFans=0&uid=1855270953&verifier=375b89d6"></iframe>
但是如果你直接寫成下面這個樣子的話,不會生效的:
var ifr = '<iframe width="100%" height="100" class="share_self" frameborder="0" scrolling="no" src="http://widget.weibo.com/weiboshow/index.php?width=0&height=100&fansRow=1&ptype=1&speed=0&skin=1&isTitle=1&noborder=0&isWeibo=0&isFans=0&uid=1855270953&verifier=375b89d6"></iframe>';
document.getElementById('weiboIframe').innerHTML = ifr;
估計博客園后台直接去匹配iframe文本,所以我們把這個打亂,這樣,他應該不會去檢測邏輯,改成這樣就成功了:
<script type="text/javascript">
var ifr = '<ifra';
ifr += 'me width="100%" height="115" class="share_self" frameborder="0" scrolling="no" src="http://widget.weibo.com/weiboshow/index.php?width=0&height=100&fansRow=1&ptype=1&speed=0&skin=1&isTitle=1&noborder=0&isWeibo=0&isFans=0&uid=1855270953&verifier=375b89d6"></ifr';
ifr += 'ame>';
document.getElementById('weiboIframe').innerHTML = ifr;
</script>
2、還可以使用createElement方法:
因為這里有人用過Google Adsense的代碼,所以猜測這個方法是可以使用的,經過測試,確實可用,就是比上面那個要多寫一些東西:
<script type="text/javascript">
var iii = document.createElement('iframe');
iii.src = 'http://widget.weibo.com/weiboshow/index.php?width=0&height=100&fansRow=1&ptype=1&speed=0&skin=1&isTitle=1&noborder=0&isWeibo=0&isFans=0&uid=1855270953&verifier=375b89d6';
iii.height = 115;
iii.width = '100%';
iii.className = 'share_self';
iii.scrolling = 'no';
document.getElementById('weiboIframe').appendChild(iii);
</script>
把上面這些弄到公告里面去,就可以顯示你的新浪微博
作者:BeiYuu