Subversion Repositories Integrator Subversion

Rev

Details | Last modification | View Log | RSS feed

Rev Author Line No. Line
1 espaco 1
<!DOCTYPE HTML>
2
<!--
3
/*
4
 * jQuery File Upload Plugin postMessage API 1.2.1
5
 * https://github.com/blueimp/jQuery-File-Upload
6
 *
7
 * Copyright 2011, Sebastian Tschan
8
 * https://blueimp.net
9
 *
10
 * Licensed under the MIT license:
11
 * http://www.opensource.org/licenses/MIT
12
 */
13
-->
14
<html lang="en">
15
<head>
16
<meta charset="utf-8">
17
<title>jQuery File Upload Plugin postMessage API</title>
18
<script src="//ajax.googleapis.com/ajax/libs/jquery/1.10.1/jquery.min.js"></script>
19
</head>
20
<body>
21
<script>
22
/*jslint unparam: true, regexp: true */
23
/*global $, Blob, FormData, location */
24
'use strict';
25
var origin = /^http:\/\/example.org/,
26
    target = new RegExp('^(http(s)?:)?\\/\\/' + location.host + '\\/');
27
$(window).on('message', function (e) {
28
    e = e.originalEvent;
29
    var s = e.data,
30
        xhr = $.ajaxSettings.xhr(),
31
        f;
32
    if (!origin.test(e.origin)) {
33
        throw new Error('Origin "' + e.origin + '" does not match ' + origin);
34
    }
35
    if (!target.test(e.data.url)) {
36
        throw new Error('Target "' + e.data.url + '" does not match ' + target);
37
    }
38
    $(xhr.upload).on('progress', function (ev) {
39
        ev = ev.originalEvent;
40
        e.source.postMessage({
41
            id: s.id,
42
            type: ev.type,
43
            timeStamp: ev.timeStamp,
44
            lengthComputable: ev.lengthComputable,
45
            loaded: ev.loaded,
46
            total: ev.total
47
        }, e.origin);
48
    });
49
    s.xhr = function () {
50
        return xhr;
51
    };
52
    if (!(s.data instanceof Blob)) {
53
        f = new FormData();
54
        $.each(s.data, function (i, v) {
55
            f.append(v.name, v.value);
56
        });
57
        s.data = f;
58
    }
59
    $.ajax(s).always(function (result, statusText, jqXHR) {
60
        if (!jqXHR.done) {
61
            jqXHR = result;
62
            result = null;
63
        }
64
        e.source.postMessage({
65
            id: s.id,
66
            status: jqXHR.status,
67
            statusText: statusText,
68
            result: result,
69
            headers: jqXHR.getAllResponseHeaders()
70
        }, e.origin);
71
    });
72
});
73
</script>
74
</body>
75
</html>