Dynamic google-code-prettify doesn't work
Asked Answered
Z

1

10

Is it possible for a button to call a function that would 'prettify' a dynamic <code><pre>? I can't get it to work.

After the page loads, the initial <code> is prettified(?), but when I change it and call prettyPrint() afterwards, it no longer works.

Example: http://jsfiddle.net/uwBjD/2/

Edit: Sorry, I was using a local prettify.js. Updated it, still encountered the same error.

Zarah answered 13/4, 2013 at 3:27 Comment(1)
Did you look at the console? It pretty explicitly tells you, prettyPrint is not defined for me. This may have to do with the fact that one of your scripts, prettify.js, is 404ing.Lithiasis
J
19

Apparently after the code is prettified, an additional class is added which is prettyprinted. Anything with the class of prettyprinted is not re-prettified. You need to remove that class before recalling the function:

$('input[type=button]').click( function() {
    $("#jsExample").text("    var user = 'private'; //Do NOT store your API Key on a script.")
        .parent().removeClass("prettyprinted");

   prettyPrint();
});

http://jsfiddle.net/uwBjD/3/

Jodhpurs answered 13/4, 2013 at 3:52 Comment(4)
code.google.com/p/google-code-prettify/source/browse/trunk/…Correspondence
Excellent! I battled against this for an hour ;)Tribunal
@James, Google has a tarded way of dealing with things.Lodhia
Great! Worked for me!Haim

© 2022 - 2024 — McMap. All rights reserved.