分类目录归档:前端

js 批量打包下载图片一例

<script src="./js/jszip.min.js"></script>
<script src="./js/FileSaver.min.js"></script>
<script src="./jquery/2.1.3/js/jquery.min.js"></script>
<script>
    var zip = new JSZip();
    zip.file("Hello.txt", "Hello World\n");
    var img = zip.folder("images");
    img.file("1.png", getBase64("https://www.baidu.com/img/bd_logo1.png"), {base64: true});
    zip.generateAsync({type: "blob"})
        .then(function (content) {
            // see FileSaver.js
            saveAs(content, "example.zip");
        });


    //传入图片路径,返回base64
    function getBase64(img) {
        function getBase64Image(img, width, height) {//width、height调用时传入具体像素值,控制大小 ,不传则默认图像大小
            var canvas = document.createElement("canvas");
            canvas.width = width ? width : img.width;
            canvas.height = height ? height : img.height;

            var ctx = canvas.getContext("2d");
            ctx.drawImage(img, 0, 0, canvas.width, canvas.height);
            var dataURL = canvas.toDataURL();
            var arr = dataURL.split(",");
            return arr[1];
        }

        var image = new Image();
        image.crossOrigin = 'Anonymous';
        image.src = img;
        var deferred = $.Deferred();
        if (img) {
            image.onload = function () {
                deferred.resolve(getBase64Image(image));//将base64传给done上传处理
            }
            return deferred.promise();//问题要让onload完成后再return sessionStorage['imgTest']
        }
    }
</script>

X-Frame-Options 响应头

X-Frame-Options HTTP 响应头是用来给浏览器指示允许一个页面可否在 <frame><iframe>或者 <object> 中展现的标记。网站可以使用此功能,来确保自己网站的内容没有被嵌到别人的网站中去,也从而避免了点击劫持 (clickjacking) 的攻击。

X-Frame-Options 有三个值:

DENY
表示该页面不允许在 frame 中展示,即便是在相同域名的页面中嵌套也不允许。
SAMEORIGIN
表示该页面可以在相同域名页面的 frame 中展示。
ALLOW-FROM uri
表示该页面可以在指定来源的 frame 中展示。

换一句话说,如果设置为 DENY,不光在别人的网站 frame 嵌入时会无法加载,在同域名页面中同样会无法加载。另一方面,如果设置为 SAMEORIGIN,那么页面就可以在同域名页面的 frame 中嵌套。

https://developer.mozilla.org/zh-CN/docs/Web/HTTP/X-Frame-Options

$.getScript原生实现

var script = document.createElement(‘script’);
script.type = ‘text/javascript’;
script.src = ‘/xxx.js’; //填自己的js路径
document.body.appendChild(script);// 缺点:不能跨域load

# 方法2

(function(){
var i = document.createElement(‘iframe’);
i.style.display = ‘none’;
// i.onload = function() {i.parentNode.removeChild(i);};
// i.name=”;
i.src = ‘http://xxx/xx’;
document.body.appendChild(i);
// i.contentWindow.document.body.innerHTML = ”;
})();