Javascript 从父选项卡读取变量

Javascript 从父选项卡读取变量,javascript,jquery,Javascript,Jquery,我正试图上传一个视频,同时用户在我的web应用程序中导航 为此,我尝试在后台打开一个新选项卡,其中有一个简单的页面,其中包含一个新的javascript库,该库只需上传视频并传递它所需的所有参数 现在所有的东西都在一个库中,所以我看不出我可以如何创建我正在寻找的新线程 下面我粘贴了我正在使用的代码: var blob; function xhr(url, data, callback) { 'use strict'; var request = new XMLHttpRequ

我正试图上传一个视频,同时用户在我的web应用程序中导航

为此,我尝试在后台打开一个新选项卡,其中有一个简单的页面,其中包含一个新的javascript库,该库只需上传视频并传递它所需的所有参数

现在所有的东西都在一个库中,所以我看不出我可以如何创建我正在寻找的新线程

下面我粘贴了我正在使用的代码:

var blob;

function xhr(url, data, callback) {
    'use strict';

    var request = new XMLHttpRequest();
    request.onreadystatechange = function () {
        if (request.readyState === 4 && request.status === 200) {
            callback(request.responseText);
        }
    };
    request.open('POST', url);
    request.send(data);
}

function sendVideo(name, path) {
    'use strict';

    var formData = new FormData();

    formData.append('filename', name + '.webm');
    formData.append('video', blob);
    formData.append('title', $('.title').val());
    formData.append('tag1', $('#tag1').val());

    if ($('#tag2').val()) {
        formData.append('tag2', $('#tag2').val());
    }

    if ($('#tag3').val()) {
        formData.append('tag3', $('#tag3').val());
    }

    xhr(path, formData, function (fName) {
        if (fName === 'success') {
            window.alert('Your video has been succesfully uploaded');
        } else {
            window.console.log(fName);
        }
    });
}

<div onclick="sendVideo(1, 'test');">Send</div>
var-blob;
函数xhr(url、数据、回调){
"严格使用",;
var request=new XMLHttpRequest();
request.onreadystatechange=函数(){
if(request.readyState==4&&request.status==200){
回调(request.responseText);
}
};
request.open('POST',url);
请求发送(数据);
}
函数sendVideo(名称、路径){
"严格使用",;
var formData=new formData();
append('filename',name+'.webm');
formData.append('video',blob);
append('title',$('.title').val());
formData.append('tag1',$('#tag1').val();
if($('#tag2').val()){
formData.append('tag2',$('#tag2').val());
}
if($('#tag3').val()){
formData.append('tag3',$('#tag3').val());
}
xhr(路径、表单数据、函数(fName){
如果(fName==“成功”){
window.alert(“您的视频已成功上传”);
}否则{
window.console.log(fName);
}
});
}
发送
同时,我也愿意接受关于处理这个问题的不同方法的新建议


谢谢你的建议。

这似乎非常适合网络工作者

WebWorkers是HTML5中一个相当新的工具,它允许您在页面上“使用”多线程

我用它们在后台完成了大文件的加载

查看Eric Bidelman关于该主题的精彩文章,了解更多信息: