⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 multifile.js

📁 ftpupdateapp是使用glib开发的在linux环境下运行的ftp客户端程序。
💻 JS
字号:
/** * Convert a single file-input element into a 'multiple' input list * * Usage: * *   1. Create a file input element (no name) *      eg. <input type="file" id="first_file_element"> * *   2. Create a DIV for the output to be written to *      eg. <div id="files_list"></div> * *   3. Instantiate a MultiSelector object, passing in the DIV and an (optional) maximum number of files *      eg. var multi_selector = new MultiSelector( document.getElementById( 'files_list' ), 3 ); * *   4. Add the first element *      eg. multi_selector.addElement( document.getElementById( 'first_file_element' ) ); * *   5. That's it. * *   You might (will) want to play around with the addListRow() method to make the output prettier. * *   You might also want to change the line  *       element.name = 'file_' + this.count; *   ...to a naming convention that makes more sense to you. *  * Licence: *   Use this however/wherever you like, just don't blame me if it breaks anything. * * Credit: *   If you're nice, you'll leave this bit: *   *   Class by Stickman -- http://www.the-stickman.com *      with thanks to: *      [for Safari fixes] *         Luis Torrefranca -- http://www.law.pitt.edu *         and *         Shawn Parker & John Pennypacker -- http://www.fuzzycoconut.com *      [for duplicate name bug] *         'neal' */function MultiSelector( list_target, max ){	// Where to write the list	this.list_target = list_target;	// How many elements?	this.count = 0;	// How many elements?	this.id = 0;	// Is there a maximum?	if( max ){		this.max = max;	} else {		this.max = -1;	};		/**	 * Add a new file input element	 */	this.addElement = function( element ){		// Make sure it's a file input element		if( element.tagName == 'INPUT' && element.type == 'file' ){			// Element name -- what number am I?			element.name = 'file_' + this.id++;			// Add reference to this object			element.multi_selector = this;			// What to do when a file is selected			element.onchange = function(){				// New file input				var new_element = document.createElement( 'input' );				new_element.type = 'file';				new_element.className = 'texto2';				// Add new element				this.parentNode.insertBefore( new_element, this );				// Apply 'update' to element				this.multi_selector.addElement( new_element );				// Update list				this.multi_selector.addListRow( this );				// Hide this: we can't use display:none because Safari doesn't like it				this.style.position = 'absolute';				this.style.left = '-1000px';			};			// If we've reached maximum number, disable input element			if( this.max != -1 && this.count >= this.max ){				element.disabled = true;			};			// File element counter			this.count++;			// Most recent element			this.current_element = element;					} else {			// This can only be applied to file input elements!			alert( 'Error: not a file input element' );		};	};	/**	 * Add a new row to the list of files	 */	this.addListRow = function( element ){		// Row div		var new_row = document.createElement( 'div' );		// Delete button		var new_row_button = document.createElement( 'input' );		new_row_button.type = 'button';		new_row_button.value = 'Delete';		new_row_button.className = 'texto2';		// References		new_row.element = element;		// Delete function		new_row_button.onclick= function(){			// Remove element from form			this.parentNode.element.parentNode.removeChild( this.parentNode.element );			// Remove this row from the list			this.parentNode.parentNode.removeChild( this.parentNode );			// Decrement counter			this.parentNode.element.multi_selector.count--;			// Re-enable input element (if it's disabled)			this.parentNode.element.multi_selector.current_element.disabled = false;			// Appease Safari			//    without it Safari wants to reload the browser window			//    which nixes your already queued uploads			return false;		};		// Set row value		new_row.innerHTML = element.value;		// Add button		new_row.appendChild( new_row_button );		// Add it to the list		this.list_target.appendChild( new_row );			};};

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -