PageSourceSearch

https://vallepunilla.com.ar/js/embeddedcontent.js

js vallepunilla.com.ar collected 2026-10-02 23:15:44 UTC 4,922 bytes, 146 lines download raw bytes

1/**********************************************************************
2 * Software:	JS Embedded Content
3 * Versión:	1.1 Final (Oct 13, 2006)
4 * Autor:	Raspu (donraspu arroba gmail punto com)
5 * Copyleft 2006, Raspu - Algunos derechos reservados. 
6 *
7 * "JS Embedded Content" es software libre. Se otorga permiso para copiar,
8 * distribuir y/o modificar este programa bajo los términos de la Licencia
9 * Pública General de GNU, versión 2.0 o cualquier otra versión posterior
10 * (a su elección) publicada por la Free Software Foundation.
11 * 
12 * Puedes consultar una copia de la licencia en http://www.gnu.org/copyleft/gpl.html
13 *
14 *
15 * DESCRIPCIÓN:
16 * ------------
17 * "JS Embedded Content" es una pequeña aplicación desarrollada
18 * mediante Javascript no intrusivo ni obstructivo, que permite la
19 * activación automática de todos los elementos incrustados en un
20 * documento HTML mediante las etiquetas OBJECT, EMBED y/o APPLET.
21 *
22 * NAVEGADORES COMPATIBLES:
23 * ------------------------
24 * - Ópera 9 final o superior (para versiones anteriores no es requerido)
25 * - Internet Explorer 5 o superior (Windows, en MAC no he probado)
26 * El resto de navegadores no es compatible debido al uso outerHTML,
27 * pero como por el momento no lo requieren no es mayor problema.
28 *
29 * INSTRUCCIONES DE USO:
30 * ---------------------
31 * Sólo debes incluir el archivo "embeddedcontent.js" colocando el siguiente 
32 * código entre las etiquetas <HEAD> y </HEAD> de tus documentos HTML:
33 * 
34 * <script type="text/javascript" src="embeddedcontent.js" defer="defer"></script>
35 *
36 * NOTA: el uso del atributo DEFER es imprescindible para poder emular en 
37 * I. Explorer el evento DOMContentLoaded.
38 **********************************************************************/
39var embeddedContent = 
40{
41
42	isMSIE : (document.all && !window.opera) ? true : false,
43	
44	
45	/**
46	 * Reinserta en el documento HTML los elementos que han sido incrustados mediante
47	 * las etiquetas OBJECT, EMBED y/o APPLET, redefiniendo su propiedad outerHTML
48	 */
49	reinsertContent : function()
50	{	
51	var totalNodes = new Array(3);
52		totalNodes['OBJECT'] = document.getElementsByTagName('OBJECT').length;
53		totalNodes['EMBED'] = document.getElementsByTagName('EMBED').length;
54		totalNodes['APPLET'] = document.getElementsByTagName('APPLET').length;
55		for(var tagName in totalNodes)
56		{
57			var counter = totalNodes[tagName] - 1;
58			for(var node; node = document.getElementsByTagName(tagName)[counter]; counter--)
59			{
60				sourceCode = embeddedContent.getSourceCode(node);
61				if(sourceCode)
62				{
63					node.outerHTML = sourceCode;
64				}
65			}
66		}
67		embeddedContent.isMSIE = null;
68	},
69	
70	
71	/**
72	 * Obtiene el código HTML completo de un determinado nodo.
73	 * @param	node (object) - El nodo analizado
74	 * @return	sourceCode (string) - El código HTML obtenido
75	 */
76	getSourceCode : function(node)
77	{
78		var sourceCode = node.outerHTML;
79		switch(node.nodeName)
80		{
81			case 'EMBED':
82				return sourceCode;
83			break;
84			case 'OBJECT':
85			case 'APPLET':
86				var openTag = sourceCode.substr(0, sourceCode.indexOf('>') + 1).toLowerCase();
87				var closeTag = sourceCode.substr(sourceCode.length - 9).toLowerCase();
88				if(closeTag != '</object>' && closeTag != '</applet>')
89				{
90					/* Si el nodo está mal formado (etiquetas de apertura y cierre) se debe 
91					anular el script ya que podría devolver un resultado incorrecto */
92					return null;
93				}
94				if(embeddedContent.isMSIE)
95				{
96					/* Para I. Explorer se debe obtener aparte el código HTML de los nodos hijos,
97					ya que la propiedad outerHTML en ocasiones devolverá un resultado incompleto */
98					var innerCode = embeddedContent.getInnerCode(node);
99					sourceCode = openTag + innerCode + closeTag;
100				}
101				return sourceCode;
102			break;
103		}
104	},
105	
106	
107	/**
108	 * Obtiene el código HTML de los nodos hijos de un determinado nodo. No se debe utilizar directamente
109	 * la propiedad innerHTML ya que en ciertos casos I. Explorer devolverá un resultado incompleto.
110	 * @param	node (object) - El nodo padre que será analizado
111	 * @return	innerCode (string) - El código HTML obtenido
112	 */
113	getInnerCode : function(node)
114	{
115		var innerCode = '';
116		var totalChilds = node.childNodes.length - 1;
117		for(var counter = totalChilds, child; child = node.childNodes[counter]; counter--)
118		{
119			innerCode += child.outerHTML;
120		}
121		return innerCode;
122	}
123	
124}
125
126
127/**
128 * Activación:
129 * -----------
130 * Detectamos el soporte de attachEvent() como filtro para I. Explorer y Ópera.
131 * Para ejecutar el script sólo necesitamos que el DOM (Document Object Model); para
132 * ello en Ópera recurrimos al evento DOMContentLoaded, mientras que en I. Explorer
133 * emulamos dicho evento apoyándonos en el atributo DEFER de la etiqueta SCRIPT
134 * con la que estamos cargando este archivo.
135 */
136if(document.attachEvent)
137{
138	if(window.opera)
139	{
140		document.attachEvent("DOMContentLoaded", embeddedContent.reinsertContent);
141	}
142	else
143	{
144		embeddedContent.reinsertContent();
145	}
146}

Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.