Autor Zpráva
neznalek
Profil *
Čafte, můžu si z nějaký stránky stáhnout menu v css a k tomu tenhle behavior:

<attach event="ondocumentready" handler="parseStylesheets" />
<script language="JScript">
/**
 *	HOVER - V1.00.031224 - whatever:hover in IE
 *	---------------------------------------------
 *	Peterned - http://www.xs4all.nl/~peterned/
 *	(c) 2003 - Peter Nederlof
 *
 *	howto: body { behavior:url("csshover.htc"); }
 *	---------------------------------------------
 */

var CSSBuffer, doc = window.document;

function parseStylesheets() {
	var rules, sheet, sheets = doc.styleSheets;
	var bufferIndex = sheets.length;	
	var head = doc.getElementsByTagName('head')[0];
	var buffer = doc.createElement('style');

	buffer.setAttribute('media', 'screen');
	buffer.setAttribute('type', 'text/css');
	head.appendChild(buffer);
	CSSBuffer = sheets[bufferIndex];

	for(var i=0; i<sheets.length -1; i++) {
		sheet = sheets[i];
		if(!sheet.media || sheet.media == 'screen') {
			rules = sheet.rules;
			for(var j=0; j<rules.length; j++) {
				parseCSSRule(rules[j]);
			}
		}
	}
}
	function parseCSSRule(rule) {
		var select = rule.selectorText, style = rule.style.cssText;
		if(!select || !style || select.indexOf(':hover') < 0) return;
		var newSelect = select.replace(/\:hover/g, '.onHover');
		CSSBuffer.addRule(newSelect, style);
		
		var affected = select.replace(/\:hover.*$/g, '');
		var elements = getElementsBySelect(affected);
		for(var i=0; i<elements.length; i++) {
			if(elements[i].nodeName == 'A') continue;
			new HoverElement(elements[i]);
		}
	}

/**
 *	HoverElement
 *	-------------------------
 *	applies the hover
 */

function HoverElement(element) {
	if(element.isHoverElement) return;
	element.isHoverElement = true;
	element.attachEvent('onmouseover', 
		function() { element.className += ' onHover'; });

	element.attachEvent('onmouseout', 
		function() { element.className = element.className.replace(/onHover/g, ''); });
}

/**
 *	domFinder
 *	-----------------------------------
 *	returns list of elements based on css selector
 */

function getElementsBySelect(rule) {
	var nodeList = [doc], sets = rule.split(' ');
	for(var i=0; i<sets.length; i++) {
		nodeList = domFinder.filterNodes(sets[i], nodeList);
	}	return nodeList;
}

var domFinder = {
	findNodes:function(tag, docs) {
		var res, nodes = [];
		for(var i=0; i<docs.length; i++) {
			res = docs[i].getElementsByTagName(tag);
			for(var j=0; j<res.length; j++) nodes[nodes.length] = res[j];
		}	return nodes;
	},

	filterNodes:function(select, docs) {
		var filtered = [], nodes,rule,atr,s = (/#|\./).exec(select);
		if(!s) return this.findNodes(select, docs);
		nodes = this.findNodes((rule = select.split(s))[0], docs);
		atr = (s == '#')? 'id':'className';
		for(var i=0; i<nodes.length; i++) {
			if(new RegExp('(^|\\s)' +  rule[1] + '(\\s|$)').exec(nodes[i][atr]))
				filtered[filtered.length] = nodes[i];
		}	return filtered;
	}
}
</script>


Není to něco nelegálního, porušení autorských práv nebo tak něco?
A k čemu slouží přesně ten behavior? Děkuju
panther
Profil
neznalek
Není to něco nelegálního, porušení autorských práv nebo tak něco?
nemyslím si.

A k čemu slouží přesně ten behavior?
tipuji to na hover u jiných elementů než odkazů v IE. Na stránce, odkud chceš menu i s tímto scriptem stahovat, by to mohlo být napsáno.
neznalek
Profil *
Já jenom že to není stánka o programování, na který je tohle jakoby opensource menu, ale já to našel normálně na nějaký webový stránce, kterou někdo vytvořil a hodilo by se mi to použít.
Bubák
Profil
Však ve zdrojáku je zakomentovaný kontakt na autora, na stránce http://www.xs4all.nl/~peterned/ si všechno najdeš a bokud nevládneš angličtinou, můžeš použít google translator.
Chce to více používat hlavu.

Vaše odpověď

Mohlo by se hodit

Kategorie Obsah webu se věnuje otázkám:
  • autorského práva,
  • o čem a jak psát,
  • sociálních sítí.

Upozorňujeme, že názory ajťáků a právníků se mohou dost lišit. Počítejte s tím, že na této diskusi jsou inteligentní lidé s obecným právním rozhledem, můžou vám poradit dle svého nejlepšího vědomí a svědomí, ale nemůžou poskytnout žádnou garanci, že neskončíte za mřížemi. Na opravdové konzultace si pořiďte opravdového právníka.

Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm: