Visualizzazione dei risultati da 1 a 3 su 3
  1. #1
    Utente di HTML.it L'avatar di Gunn
    Registrato dal
    Feb 2006
    Messaggi
    370

    ie6 e prototype (Object.prototype, Element.prototype)

    :rollo: caspio, gagliardo sto ie6! funziona da dio come sempre!


    Object.prototype.test = function(){return "object"};
    Function.prototype.test = function(){return "function"};
    HTMLElement.prototype.test = function(){return "HTMLEL"};
    Element.prototype.test = function(){return "Element"};

    var x = document.getElementById("pippo");
    alert(x.test());

    c'è verso di estendere tutti gli Element DOM?
    grazie
    -10 points to SCLERO high top class [definition of SCLERO HIGH TOP CLASS: 90 random kills]

  2. #2
    Un modo c'è, ma se lo vedi rabbrividisci:
    codice:
    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
    "http://www.w3.org/TR/html4/loose.dtd">
    <html>
    	<head>
    		<title>New Document</title>
    		<style type="text/css">
    			* {
    				behavior: url(HTMLElement.htc);
    			}
    		</style>
    		<script type="text/javascript">
    			if (window.ActiveXObject) var HTMLElement = new Function();
    			
    			HTMLElement.prototype.test = 'its work';
    		</script>
    	</head>
    	<body>
    		<div onclick="alert(this.test)">text</div>
    	</body>
    </html>
    codice:
    <PUBLIC:ATTACH event="onpropertychnage"/>
    <script type="text/javascript">
    	var HtmlElement = new HTMLElement();
    	for (var i in HtmlElement)
    	{
    		this[i] = HtmlElement[i];
    	}
    </script>
    In passato ho avuto lo stesso problema, ma poi ho scelto di seguire una strada completamente diversa ( sia per problemi di intrusività, sia perchè mai e poi mai mi abbasserei a un tal punto da usare un file .htc ):
    codice:
    function GET(el) {
      return !!el 
        ? new GET.klass(el.constructor == String 
          ? document.getElementById(el) 
          : el
        ) 
        : null;
    }
    GET.klass = function(el) {
      this.el = el;
    }
    GET.klass.prototype = {
      'test': function() {
         alert(this.el);
      }
    }
    
    //Esempio
    GET("unDiv").test();

  3. #3
    Utente di HTML.it L'avatar di Gunn
    Registrato dal
    Feb 2006
    Messaggi
    370
    assurdo :rollo:
    -10 points to SCLERO high top class [definition of SCLERO HIGH TOP CLASS: 90 random kills]

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2024 vBulletin Solutions, Inc. All rights reserved.