zoukankan      html  css  js  c++  java
  • sina微博加入到博客园

    很多博客都可以自己添加修改一些代码,但是作为博客平台来说,可能为了安全考虑,很多时候要过滤一些特性,比如:新浪微博的挂件是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>
  • 相关阅读:
    关于js计算非等宽字体宽度的方法
    [NodeJs系列]聊一聊BOM
    Vue.js路由管理器 Vue Router
    vue 实践技巧合集
    微任务、宏任务与Event-Loop
    事件循环(EventLoop)的学习总结
    Cookie、Session和LocalStorage
    MySQL 树形结构 根据指定节点 获取其所在全路径节点序列
    MySQL 树形结构 根据指定节点 获取其所有父节点序列
    MySQL 创建函数报错 This function has none of DETERMINISTIC, NO SQL, or READS SQL DATA in its declaration and binary logging is enabled (you *might* want to use the less safe log_bin_trust_function_creators
  • 原文地址:https://www.cnblogs.com/imsoft/p/4813389.html
Copyright © 2011-2022 走看看