2012-01-02 11 views
5

ho questo codice:gestore click con l'editor dojo

<!DOCTYPE HTML> 
<html> 
<head> 
<script 
    src="http://ajax.googleapis.com/ajax/libs/dojo/1.7.1/dojo/dojo.js" 
    type="text/javascript" djConfig="parseOnLoad: true"></script> 
<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.6.2/jquery.min.js"></script> 

<script type="text/javascript"> 
var myButton = dojo.byId("btn"); 
dojo.connect(myButton, "onclick", function (evt) { 
    require(["dojo/_base/xhr", "dojo/parser", "dojo/dom"], function (xhr, parser, dom) { 
     xhr.get({ 
      url: "teste_apagar.php", 
      load: function (data) { 
       alert("as"); 
       var um = []; 
       dijit.registry.filter(function(w){ 
        if(dojo.indexOf(um)){ 
         w.destroyRecursive(); 
        } 
       }); 
       dom.byId("result").innerHTML = data; 
       parser.parse("result"); 
      } 
     }); 
    }); 
}); 
</script> 

</head> 

<body class="claro"> 
<script type="text/javascript"> 
    dojo.require("dijit.Editor"); 
</script> 

<div id="btn" style="width: 100px; height: 30px; margin-bottom: 150px; background-color: red;">load</div> 
    <div id="result"> 
    </div> 
</body> 
</html> 

Tuttavia, quando scatto a pulsante grassetto o corsivo, anche con tasto destro del mouse nella parte superiore della barra con le opzioni di formattazione, la richiesta Ajax viene ricaricata. Quindi l'editor del dojo viene caricato quando premo la barra degli strumenti di formattazione

Qualche idea? demohere

risposta

3

È necessario eseguire il codice Dojo dopo aver caricato Dojo. Vedi http://jsbin.com/ukesup/7.

Nel modo in cui si sta facendo il "myButton" è null perché dojo non è ancora stato caricato e dojo.byId restituisce un valore non valido o semplicemente non esiste.

Ricordarsi inoltre di caricare i widget richiesti dopo aver caricato il dojo. Nell'esempio ho usato il Dojo < in modo 1,7:

dojo.addOnLoad(function() { 
    dojo.require("dijit.Editor"); 
    ... 
    more code here 
    ... 
}); 
+0

dio. ho dimenticato il dojo.addOnLoad (- grazie amico – anvd