關於解決微信圖文防盜鏈方案

推薦方法一javascript

<meta name="referrer" content="never">php

就這麼一句話,把它放到<head>頭裏就能夠了。記得要把其餘影響圖片的東西給刪了,否則會衝突。html

========================================================================================前端

我本身本人的,由於我但願點擊一個連接時跳轉到微信圖文,而後在該頁面點擊返回圖標從微信圖文返回以前的APP頁面,我在本身網站的HTML裏的div中嵌套一個<iframe>標籤,src連接到微信公衆號裏的圖文,跑出來後只能顯示文字,不能加載顯示圖片,百度了說是微信的防盜鏈,有說在<head>標籤里加<meta name="referrer" content="never">但好像也只能在手機的訪問顯示,也有把圖片的data-src改爲src(在瀏覽器右鍵圖片檢查時能夠看到這些屬性,更改時是能夠顯示的,但我不知道怎麼保,其餘不太清楚,反正我不知道什麼鬼),但我頁面只是一個div裏嵌套iframe標籤連接到微信公衆號的圖文,沒其餘的,找了一天,爲此還白花了15塊買個文檔來也沒用,最後終於找到了一個只用js就能夠破解微信圖文防盜鏈的,感謝來自博客園的「前端小透明」java

地址:http://www.cnblogs.com/xiaomingSun/p/6761708.htmljquery

若是你只是經過點擊一個連接跳轉到微信圖文的話,直接一個標籤連接到你的目的地址就行,可是這樣你不能返回以前的頁面,因此我在div裏寫放了個返回圖片,再在div裏嵌套一個<iframe>標籤,連接到微信圖文,這樣在移動端跑出來後就只能看到文字,圖片都沒有加載顯示出來,這和http的referrer有關係,具體原理請百度微信防盜鏈原理了解,下面就是個人<body>代碼:ajax

<body>瀏覽器

    <div class="container">微信

        <!--S-頂部欄-->app

        <div class="header-box">

            <div class="left-return">

                <a href="#">

                    <img src="~/Images/icon/left30X30.png" width="15" height="15" />

                </a>  

            </div>

            <div class="middle">資訊中心</div>

        </div>

        <!--E-頂部欄-->

        <!--S-iframe資訊欄-->

        <div class="news-box">

             <!—若是加入了下面的js,則此處的src連接地址能夠不寫-->

            <iframe id="myframe" src="http://mp.weixin.qq.com/s/d1NIaupcZT_yeZnz4QRS1A">

 

            </iframe>

        </div>

        <!--E-iframe資訊欄-->

    </div>

</body>

加入js

<script>

        //破解iframe微信推文(圖片)防盜鏈

        $.ajaxPrefilter(function (options) {

            if (options.crossDomain && jQuery.support.cors) {

                var http = (window.location.protocol === 'http:' ? 'http:' : 'https:');

                options.url = http + '//cors-anywhere.herokuapp.com/' + options.url;

            }

        });

 

        var share_link = "http://mp.weixin.qq.com/s/d1NIaupcZT_yeZnz4QRS1A"; //微信文章地址

        $.get(

            share_link,

            function (response) {

                //console.log("> ", response);

                var html = response;

                html = html.replace(/data-src/g, "src");

                var html_src = 'data:text/html;charset=utf-8,' + html;

                $("iframe").attr("src", html_src);

            });

    </script>

==========================================================================================

百度其餘方法一:

例子:

<div class="M_detail-con" id="ddb-branch-introduction">
{php echo htmlspecialchars_decode($hd['description'])} //微信內容

</div>

引入下面js

<script src="http://libs.baidu.com/jquery/1.10.2/jquery.min.js"></script>

<script>

                         

                          $("#ddb-branch-introduction img").each(function () {

            var img = $(this);

            if (img.parent().attr("id") != "ad1") {

                var img_src = img.attr("src");

                var frameid = 'frameimg' + Math.random();

                window.img = '<img id="img" style="width:100%" src=\'' + img_src + '?' + Math.random() + '\' /><script>window.onload = function() { parent.document.getElementById(\'' + frameid + '\').height = document.getElementById(\'img\').height+\'px\'; }<' + '/script>';

                img.parent().append('<iframe id="' + frameid + '" src="javascript:parent.img;" frameBorder="0" scrolling="no" width="100%"></iframe>');

                img.remove();

            }

        });

                         

</script>

===============================================================================================================================

百度其餘方法二:

<?php 
$p=$_GET['p']; 
$pics=file($p); 
for($i=0;$i< count($pics);$i++) 

echo $pics[$i]; 


?> 

使用方法:將以上內容文件保存成p.PHP上傳到根目錄 
而後在前端對應頁面加入如下代碼(修改你的域名進去便可)

改圖片地址方法:

<script src="http://libs.baidu.com/jquery/1.10.2/jquery.min.js"></script>

<script>

                          $(function() {

                                   var pattern = /^http:\/\/mmbiz/;

                                   var patterns = /^https:\/\/mmbiz/;

                                   var mmsns = /^http:\/\/mmsns/;

                                   var mmsnss = /^https:\/\/mmsns/;

                                   var prefix= 'http://你的域名/p.php?p=';                                  

$("img").each(function(){

                                            var src = $(this).attr('src');

                                            if(pattern.test(src)){

                                                     var newsrc = prefix+src;

                                                     $(this).attr('src',newsrc);

                                            }

                                            if(patterns.test(src)){

                                                     var newsrc = prefix+src;

                                                     $(this).attr('src',newsrc);

                                            }

                                            if(mmsns.test(src)){

                                                     var newsrc = prefix+src;

                                                     $(this).attr('src',newsrc);

                                            }

                                            if(mmsnss.test(src)){

                                                     var newsrc = prefix+src;

                                                     $(this).attr('src',newsrc);

                                            }

                                   });

                          });

                  </script>

 

菜鳥一枚,但願對你們有幫助!

相關文章
相關標籤/搜索