Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/423.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/74.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript Wordpress AJAX调用无法从不同的函数访问变量_Javascript_Jquery_Scope_Global Variables - Fatal编程技术网

Javascript Wordpress AJAX调用无法从不同的函数访问变量

Javascript Wordpress AJAX调用无法从不同的函数访问变量,javascript,jquery,scope,global-variables,Javascript,Jquery,Scope,Global Variables,我对javascript的范围有问题。我无法访问我在函数中定义的这些变量 <script type="text/javascript"> document.onload = function() { q = JQuery; video_form = q("#wb_bc_video_form"); video_ulid = q("#wb_bc_video_ulid"); file_input = q("#wb_bc_file_

我对javascript的范围有问题。我无法访问我在函数中定义的这些变量

<script type="text/javascript">

    document.onload = function() {

      q = JQuery;
      video_form = q("#wb_bc_video_form");
      video_ulid = q("#wb_bc_video_ulid");
      file_input = q("#wb_bc_file_input");
      video_file = file_input.files[0];
      video_size = q("#wp_bc_video_size");
      video_time = q("#wp_bc_video_time");

    };

    function uploadVideo(fileFormField) {
      var formdata = new FormData();
      formdata.append("video", video_file);
      q.ajax(
              {
                type: "POST",
                url: ajaxurl,
                beforeSend: function(xhr) {
                  start = new Date().getTime();
                  xhr.upload.addEventListener('progress', function(e) {
                    var loaded = e.loaded / 1048576;
                    var total = e.total / 1048576;
                    video_size.innerHTML = loaded.toPrecision(4) + "(MB / " + total.toPrecision(4) + "MB)&nbsp;";
                    video_time.innerHTML = (new Date().getTime() - startTime) / 1000 + " Seconds";
                    if (Math.round(loaded) === Math.round(total)) {
                      node(video_form, "p", "Processing video... please wait.");
                    }
                  }, false);
                }
              }
      ).done(function(txt) {
        console.log(txt);
      }).fail(function(xhr, txt) {
        console.log(txt);
      }).always(function(xhr, txt) {
        console.log(txt);
      });

    }
  </script> 
uploadVideo函数无法访问document.onload中的所有变量

<script type="text/javascript">

    document.onload = function() {

      q = JQuery;
      video_form = q("#wb_bc_video_form");
      video_ulid = q("#wb_bc_video_ulid");
      file_input = q("#wb_bc_file_input");
      video_file = file_input.files[0];
      video_size = q("#wp_bc_video_size");
      video_time = q("#wp_bc_video_time");

    };

    function uploadVideo(fileFormField) {
      var formdata = new FormData();
      formdata.append("video", video_file);
      q.ajax(
              {
                type: "POST",
                url: ajaxurl,
                beforeSend: function(xhr) {
                  start = new Date().getTime();
                  xhr.upload.addEventListener('progress', function(e) {
                    var loaded = e.loaded / 1048576;
                    var total = e.total / 1048576;
                    video_size.innerHTML = loaded.toPrecision(4) + "(MB / " + total.toPrecision(4) + "MB)&nbsp;";
                    video_time.innerHTML = (new Date().getTime() - startTime) / 1000 + " Seconds";
                    if (Math.round(loaded) === Math.round(total)) {
                      node(video_form, "p", "Processing video... please wait.");
                    }
                  }, false);
                }
              }
      ).done(function(txt) {
        console.log(txt);
      }).fail(function(xhr, txt) {
        console.log(txt);
      }).always(function(xhr, txt) {
        console.log(txt);
      });

    }
  </script> 

您试图访问哪些变量,目的是什么?快速回答,在function.document.onload之外定义它们?那行吗。您知道Wordpress几乎内置了jQuery,并且有自己的处理ajax请求的方法,带有预制挂钩等@rorymcrossan我无法访问document.onload函数中的任何变量为什么在加载DOM之前需要访问DOM元素?除了不合逻辑之外,这是不可能的。你甚至都不接近!您使用的是JQuery,它可能被称为JQuery,但您没有使用正确的document.ready函数,您在JQuery对象上使用文件[0]和innerHTML,并且您几乎所有其他操作都出错。