MediaWiki:Gadget-LegacyScriptsNewNode.js

Wikiqısebend ra

Note: Qeydi ra dıme, gani viriya cıgeyrayoği pak bo ke vurnayışi bıvêniyê.

  • Gışta şıma ke niya ro gocega Firefox / Safari: Shift ser, bıtıknê ra newe ra bar kerên ya zi Ctrl-F5 ya zi Ctrl-R bıtıknê (seba Mac ra ⌘-R).
  • Google Chrome: Ctrl-Shift-R ro nê. (seba Mac ra ⌘-Shift-R)
  • Internet Explorer / Edge: Ctrl ke niyo ro cı, Newe ke bıtıknê ya zi Ctrl-F5 bıkerê.
  • Opera: Ctrl-F5 bıtıknê.
// [[en:MediaWiki:Gadget-LegacyScriptsNewNode.js]]
// this script is deprecated do not use newNode function! use jQuery instead

/**
 * Create a new DOM node for the current document.
 *    Basic usage:
 *        var mySpan = newNode('span', "Hello World!")
 *    Supports attributes and event handlers:
 *        var mySpan = newNode('span', {style:"color: red", focus: function(){alert(this)}, id:"hello"}, "World, Hello!")
 *    Also allows nesting to create trees:
 *        var myPar = newNode('p', newNode('b',{style:"color: blue"},"Hello"), mySpan)
 **/

var newNode = window.newNode = function newNode(tagname) {
	var node = document.createElement(tagname);

	for (var i = 1; i < arguments.length; i++) {
		var argument = arguments[i];
		if (typeof argument == 'string') { //Text
			node.appendChild(document.createTextNode(argument));
		} else if (typeof argument == 'object') {
			if (argument instanceof Node) { // If it is a DOM Node
				node.appendChild(argument);
			} else { // Attributes (hopefully)
				for (var j in argument) {
					if (j === 'class') { // Classname different because...
						node.className = argument[j];
					} else if (j == 'style') { // Style is special
						node.style.cssText = argument[j];
					} else if (typeof argument[j] == 'function') { // Basic event handlers
						node.addEventListener(j, argument[j], false);
					} else {
						node.setAttribute(j, argument[j]); //Normal attributes
					}
				}
			}
		}
	}
 
	return node;
};
// this script is deprecated do not use newNode function! use jQuery instead

/**
 * Create a new DOM node for the current document.
 *    Basic usage:
 *        var mySpan = newNode('span', "Hello World!")
 *    Supports attributes and event handlers:
 *        var mySpan = newNode('span', {style:"color: red", focus: function(){alert(this)}, id:"hello"}, "World, Hello!")
 *    Also allows nesting to create trees:
 *        var myPar = newNode('p', newNode('b',{style:"color: blue"},"Hello"), mySpan)
 **/

var newNode = window.newNode = function newNode(tagname) {
	var node = document.createElement(tagname);

	for (var i = 1; i < arguments.length; i++) {
		var argument = arguments[i];
		if (typeof argument == 'string') { //Text
			node.appendChild(document.createTextNode(argument));
		} else if (typeof argument == 'object') {
			if (argument instanceof Node) { // If it is a DOM Node
				node.appendChild(argument);
			} else { // Attributes (hopefully)
				for (var j in argument) {
					if (j === 'class') { // Classname different because...
						node.className = argument[j];
					} else if (j == 'style') { // Style is special
						node.style.cssText = argument[j];
					} else if (typeof argument[j] == 'function') { // Basic event handlers
						node.addEventListener(j, argument[j], false);
					} else {
						node.setAttribute(j, argument[j]); //Normal attributes
					}
				}
			}
		}
	}
 
	return node;
};