2009-09-16 8 views
4



comment insérer le code javascript via jquery?

<div id="example"> 

</div> 


<script type="text/javascript"> 

    function insert() { 
    var data = '<script type="text/javascript"> function test() { a = 5; }<\/script>'; 
    $("#example").append(data); 
    } 

    function get() { 
    var content = $("#example").html(); 
    alert(content); 
    } 


</script> 


<a href="#" onclick="insert();">INSERT</a> 

<a href="#" onclick="get();">GET</a> 


</body> 
</html> 

ce que je veux faire:

lorsque je clique sur insert, je veux insérer ce code dans exemple div:

<script type="text/javascript"> function test() { a = 5; }<\/script> 

quand je clique sur obtenir, je veux obtenir ce code, dont je ins erted là. Mais quand je clique sur insérer, puis sur obtenir, il n'y a pas de code .. où est le problème? merci

Répondre

0

Cherchez-vous le code en parcourant la version live du DOM, en utilisant un outil comme Firebug? Si vous pensez que votre code sera rendu dans la fenêtre de votre navigateur habituel, ce n'est pas le cas, car les balises de script sont réellement analysées lorsqu'elles sont insérées et les balises de script ne sont pas des éléments visibles dans une page HTML.

+0

oui, mais est-il possible d'insérer du code javascript dans la page avec jquery, mais pas analysé? Je veux l'insérer comme une chaîne ou un texte brut. –

4

Selon votre commentaire à Adam Bellaire, vous voulez que l'étiquette de script s'affiche en texte normal. Ce que vous cherchez à faire est d'encoder le texte avec HTML entities, cela empêchera le navigateur de le traiter comme HTML normal.

var enc = $('<div/>').text('<script type="text/javascript"> function test() { a = 5; }<\/script>').html(); 
    $("#example").append(enc); 
1

Cela fonctionne:

function insert() { 
var data = '<script type="text/javascript"> function test() { a = 5; }<\/script>'; 
$('#example').text(data); 
} 

function get() { 
var content = $('#example').text(); 
alert(content); 
} 
Questions connexes