iframe解决图片防盗链,并解决iframe对事件的拦截
图片资源因防盗链而无法加载。
我在引用外部图片资源时,提示403。很显然对referrer进行了过滤。浏览器新窗口试一下,发现可以打开,说明空referrer可以解决这个问题。
在head标签加上<meta name="referrer" content="never">
就可以打开了。
但是这样有个问题,不仅请求资源不带referrer,打开新网页也没有referrer了。显然这不是我想要的结果。
思路:用iframe加载一个页面,该页面空referrer请求资源。
新建一个image.html
、image.js
。在image.html
引入image.js
,在js脚本中通过解析页面url链接location.href
来获取要请求的资源链接。需要注意的是,在传递参数时候,不要使用传统的’?’,使用锚#
来分隔链接和参数。
<a class="art" target="_blank" href="/post/1.html">
<div class="img"><iframe seamless src="/image.html#image=/image.jpg"></iframe></div>
<span class="title font-14 m-t-8 line-text-2"title</span>
<