$("#imgDiv img").each(function () {
var img = $(this);
var img_src = img.attr("src") + "?" + Math.random();
var frameid = "frameimg" + Math.random(); var image = new Image();
image.src = img_src;
image.onload = function () {
window.img = '<img id="img" src=\'' + img_src + '\'/>';
window.img += '<style></style>';
window.img += '<script>window.onload=function(){';
window.img += 'parent.document.getElementById(\'' + frameid + '\').height=document.getElementById(\'img\').height+\'px\'';
window.img += 'parent.document.getElementById(\'' + frameid + '\').width=document.getElementById(\'img\').width+\'px\'';
window.img += '}<' + '/script>';
img.parent().append('<iframe width="' + image.width + 'px" height="' + image.height + 'px" id="' + frameid + '" src="javascript:parent.img" frameBorder="0" scrolling="no"></iframe>');
img.remove();
}
});

此方法每张图片会创建一个iframe,比较耗费资源,请根据实际情况确定是否使用

ps:此外还要在页面或者模板页中加上:

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

后来需要iframe中的图片最大宽度为800并居中:

$("#imgDiv img").each(function () {
var img = $(this);
var img_src = img.attr("src") + "?" + Math.random();
var frameid = "frameimg" + Math.random(); var image = new Image();
image.src = img_src;
image.onload = function () {
var ff = 1; if (image.width > 800) {
ff = 800 / image.width;
image.width = 800;
}
window.img = '<img style="max-width:800px" id="img" src=\'' + img_src + '\'/>';
window.img += '<style></style>';
window.img += '<script>window.onload=function(){';
window.img += 'parent.document.getElementById(\'' + frameid + '\').height=document.getElementById(\'img\').height+\'px\'';
window.img += 'parent.document.getElementById(\'' + frameid + '\').width=document.getElementById(\'img\').width+\'px\'';
window.img += '}<' + '/script>';
img.parent().append('<iframe style="display:block;margin:0px auto;overflow:hidden;width:' + image.width + 'px;" height="' + image.height * ff + 'px" id="' + frameid + '" src="javascript:parent.img" frameBorder="0" scrolling="no"></iframe>');
img.remove();
}
});

微信图片反防盗链 用js不太成熟的解决方式 仅供参考的更多相关文章

  1. HTTP防盗链与反防盗链

    HTTP防盗链 通过上一次,我没对HTTP请求不再那么陌生了.防盗链无非就是别人来请求自己网站的信息,用于其他网站,那么如果我们能识别请求是来自那个网站,如果是外网,那么就重定向等其他处理.但在web ...

  2. 判断终端类型、微信的文章防盗链、h5页面跳转打开新的app、跳转到app市场

    判断终端的类型.安卓.ios.微信.qq function  GetMobelType()  {                 var  browser  =   {                 ...

  3. 微信小程序--基于ColorUI构建皮皮虾短视频去水印组件(仅供学习使用)

    微信小程序--基于ColorUI构建皮皮虾短视频去水印组件(仅供学习使用) 没错,我是皮友,我想学习舞蹈(/doge)和瑜伽 ,要无水印的那种有助于我加深学习. 1.组件效果展示 2.组件引入准备 h ...

  4. 跳过图片反盗链js

    页面增加<iframe> <iframe id="ifa" style="display:none" /> 原来html: <im ...

  5. 【反防盗链】img 标签 访问图片 返回403 forbidden问题

    解决方案,页面头添加 <meta name="referrer" content="no-referrer" /> 隐藏请求体中标注来源referr ...

  6. Nginx图片的防盗链配置

    [root@web01 www]# cat /app/server/nginx/conf/vhosts/default.conf server { listen default_server; ser ...

  7. 破解iframe微信推文(图片)防盗链

    $.ajaxPrefilter(function(options) { if(options.crossDomain && jQuery.support.cors) { var htt ...

  8. Asp.net 图片文件防盗链介绍

    想要实现文件放盗链的功能 首先添加一个全局文件 Global.asax 在 Application_BeginRequest中我们可以判断Http报文头中的UrlReferre是否来源本站. if ( ...

  9. 微信JSSDK javascript 开发 代码片段,仅供参考

    最全面最专业的微信公众平台开发教程:http://www.cnblogs.com/txw1958/p/weixin-js-sdk-demo.html 比较完整的分享教程:http://www.cnbl ...

随机推荐

  1. 常用ES6语法

    <!DOCTYPE html><html> <head> <meta charset="UTF-8"> <title>& ...

  2. 基于openresty 的几个开发框架

    1. kong    api  gateway     Github:   https://github.com/Mashape/kong 2.  Lapis   web 开发框架   Github: ...

  3. jenkins忘记密码如何处理?

    一.admin密码未更改情况 1.进入\Jenkins\secrets目录,打开initialAdminPassword文件,复制密码: 2.访问Jenkins页面,输入管理员admin,及刚才的密码 ...

  4. Wordpress网站添加七牛云cdn

    1.一个搭建好的网站和七牛云账号 2.七牛云进入控制面板 3创建存储空间 4创建好了空间拿七牛给你了测试域名(但只可以使用30天)所以绑定自定义域名(这个必须是备案过的) 5.设置自定义域名(加速域名 ...

  5. rtesseract的例子

    这个是用来验证码识别的 需要先装一下这些 brew install Tesseract brew install imagemagick gem install rmagick 测试代码 requir ...

  6. redis数据结构对象

    redis的数据结构对象包括 字符串 列表 哈希 集合 有序集合五种数据结构对象,由底层的8种数据结构组成这五种对象,每种对象的实现不同的数据都是不一样的. 结构 typedef struct red ...

  7. 通俗讲讲FPGA

    通俗讲讲什么是FPGA. FPGA出现之前,所有集成电路都可以看成雕塑家,但是雕成一个成品,往往要浪费很多半成品和原料,这就是ASIC的制造. 后来FPGA出现了,FPGA就是块橡皮泥,什么硬件电路都 ...

  8. android 手机UDP 接受不到数据

    一.有的手机不能直接接收UDP包,可能是手机厂商在定制Rom的时候把这个功能给关掉了. 1.可先在oncreate()方法里面实例化一个WifiManager.MulticastLock 对象lock ...

  9. Appium Hybrid混合应用测试——Native切换WebView , 切换不了WebView (没有试过,先记录在此)

    Appium Hybrid混合应用测试过程中,经常需要在Native和WebView之间进行切换: 1.切换至WEBVIEW操作: for cons in driver.contexts: if co ...

  10. java http头信息

    JAVA 从http请求头中获取Header信息: request.getHeader(),request.getHeaderNames(),request.getHeaders() Java获取Ht ...