微信来源图片破解防盗链 iframe在火狐浏览器上显示问题

liqzsl 2016-09-20 10:51:35
/JS代码/
<script type="text/javascript">
function showImg(url) {
var frameid = 'frameimg' + Math.random();
window.img = '<img id="img" width="100%" src=\'' + url + '?' + Math.random() + '\' /><script>window.onload = function() { parent.document.getElementById(\'' + frameid + '\').height = document.getElementById(\'img\').height+\'px\'; }<' + '/script>';
document.write('<iframe id="' + frameid + '" src="javascript:parent.img;" frameBorder="0" scrolling="no" width="100%"></iframe>');
}
</script>

//问题所在

通过以上JS~可以解决图片显示问题,IE 谷歌等浏览器显示均是正常的,但是在火狐浏览器上显示就是以下情况,图片显示相同,高度也是不对。求大神指点



...全文
522 1 打赏 收藏 转发到动态 举报
写回复
用AI写文章
1 条回复
切换为时间正序
请发表友善的回复…
发表回复
Go 旅城通票 2016-09-20
  • 打赏
  • 举报
回复
对比2个iframe你就发现了,第一个iframe并没有height属性,因为img变量是全局属性,导致第一个和第二个iframe加载的都是最后一个img变量,改为唯一的就行了,ie和chrome正常应该是和内核有关,输出iframe的时候可能直接引用到当前的img变量值了,firefox可能是iframe全部先解析完在引用变量
        function showImg(url) {
            var frameid = 'frameimg' + new Date().getTime();
            //全局变量名称起唯一
            window['var' + frameid] = '<img id="img"  width="100%" src=\'' + url + '?' + Math.random() + '\' /><script>window.onload = function() { parent.document.getElementById(\'' + frameid + '\').height = document.getElementById(\'img\').height+\'px\';delete parent.var' + frameid + ' }<' + '/script>';
            document.write('<iframe id="' + frameid + '" src="javascript:parent.var' + frameid + ';" frameBorder="0" scrolling="no" width="100%"></iframe>');
        }
js破解网站防盗链输出原始图片

87,910

社区成员

发帖
与我相关
我的任务
社区描述
Web 开发 JavaScript
社区管理员
  • JavaScript
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧