client/js/uploader.basic.api.js
function(buttonOrFileInputOrFile) {
            var inputs, fileInput,
                fileBlobOrInput = buttonOrFileInputOrFile;

            // We want the reference file/blob here if this is a proxy (a file that will be generated on-demand later)
            if (fileBlobOrInput instanceof qq.BlobProxy) {
                fileBlobOrInput = fileBlobOrInput.referenceBlob;
            }

            // If the item is a `Blob` it will never be associated with a button or drop zone.
            if (fileBlobOrInput && !qq.isBlob(fileBlobOrInput)) {
                if (qq.isFile(fileBlobOrInput)) {
                    return fileBlobOrInput.qqButtonId;
                }
                else if (fileBlobOrInput.tagName.toLowerCase() === "input" &&
                    fileBlobOrInput.type.toLowerCase() === "file") {

                    return fileBlobOrInput.getAttribute(qq.UploadButton.BUTTON_ID_ATTR_NAME);
                }

                inputs = fileBlobOrInput.getElementsByTagName("input");

                qq.each(inputs, function(idx, input) {
                    if (input.getAttribute("type") === "file") {
                        fileInput = input;
                        return false;
                    }
                });

                if (fileInput) {
                    return fileInput.getAttribute(qq.UploadButton.BUTTON_ID_ATTR_NAME);
                }
            }
        }
function(buttonOrFileInputOrFile) {
            var inputs, fileInput,
                fileBlobOrInput = buttonOrFileInputOrFile;

            // We want the reference file/blob here if this is a proxy (a file that will be generated on-demand later)
            if (fileBlobOrInput instanceof qq.BlobProxy) {
                fileBlobOrInput = fileBlobOrInput.referenceBlob;
            }

            // If the item is a `Blob` it will never be associated with a button or drop zone.
            if (fileBlobOrInput && !qq.isBlob(fileBlobOrInput)) {
                if (qq.isFile(fileBlobOrInput)) {
                    return fileBlobOrInput.qqButtonId;
                }
                else if (fileBlobOrInput.tagName.toLowerCase() === "input" &&
                    fileBlobOrInput.type.toLowerCase() === "file") {

                    return fileBlobOrInput.getAttribute(qq.UploadButton.BUTTON_ID_ATTR_NAME);
                }

                inputs = fileBlobOrInput.getElementsByTagName("input");

                qq.each(inputs, function(idx, input) {
                    if (input.getAttribute("type") === "file") {
                        fileInput = input;
                        return false;
                    }
                });

                if (fileInput) {
                    return fileInput.getAttribute(qq.UploadButton.BUTTON_ID_ATTR_NAME);
                }
            }
        }
function ( buttonOrFileInputOrFile ) { var inputs , fileInput , fileBlobOrInput = buttonOrFileInputOrFile ; // We want the reference file/blob here if this is a proxy (a file that will be generated on-demand later) if ( fileBlobOrInput instanceof qq . BlobProxy ) { fileBlobOrInput = fileBlobOrInput . referenceBlob ; } // If the item is a `Blob` it will never be associated with a button or drop zone. if ( fileBlobOrInput && ! qq . isBlob ( fileBlobOrInput ) ) { if ( qq . isFile ( fileBlobOrInput ) ) { return fileBlobOrInput . qqButtonId ; } else if ( fileBlobOrInput . tagName . toLowerCase ( ) === "input" && fileBlobOrInput . type . toLowerCase ( ) === "file" ) { return fileBlobOrInput . getAttribute ( qq . UploadButton . BUTTON_ID_ATTR_NAME ) ; } inputs = fileBlobOrInput . getElementsByTagName ( "input" ) ; qq . each ( inputs , function ( idx , input ) { if ( input . getAttribute ( "type" ) === "file" ) { fileInput = input ; return false ; } } ) ; if ( fileInput ) { return fileInput . getAttribute ( qq . UploadButton . BUTTON_ID_ATTR_NAME ) ; } } }
Gets the internally used tracking ID for a button.

@param buttonOrFileInputOrFile `File`, `<input type="file">`, or a button container element
@returns {*} The button's ID, or undefined if no ID is recoverable
@private
Gets the internally used tracking ID for a button .