prettyPrint () nie jest wywoływany podczas ładowania strony

Próbuję poprawić mój kod w Bloggerze. Połączyłem pliki Google JS i CSS z moim szablonem. Problem polega na tym, że chcę, aby kod został poprawiony podczas ładowania strony, więc dodamprettyPrint(); do zdarzenia ładowania strony na szablonie.

<body onload="prettyPrint();">

Ten kod nie zostanie wykonany. Jednakże, jeśli wpisuję prettyPrint () ręcznie w konsoli, moje kody zostaną poprawione poprawnie. Czy blok szablonu blogera wywołuje funkcje JS ręcznie?

EDYTOWAĆ Robię to, aby ręcznie wywołać funkcję w każdym poście, którego kod wymaga poprawienia (patrz poniżej). Mimo to chcę wiedzieć, dlaczego nie mogę tego zrobić na szablonie.

<pre class="prettyprint linenums lang-js">
function testCode(){

}
</pre>
// I have to do this in every post :-s
<script type="text/javascript">
prettyPrint();
</script>

EDYCJA 2 TheREADME powiedział, że nie powinienem używaćprettyPrint() bezpośrednio jako handler, ale zamiast tego owiń go w zamknięcie. Dodałem więc ten kod, podobnie jak w przykładzie README, w moim<head> ale bez skutku.

<script type='text/javascript'>
window.addEventListener('load', function (event) { prettyPrint() }, false); 
</script>

LUB

<script type='text/javascript'>
document.addEventListener('DOMContentLoaded',function() {
    prettyPrint();
});
</script>

EDYCJA 3 Mój szablon HTML jest tylko domyślnym szablonem Dynamics View (Classic) z dodaną biblioteką prettify, jak wyjaśniono powyżej.

EDYCJA 4 Oto link do zademonstrowania problemu:http://testprettyprint.blogspot.com/2013/02/blog-post.html - blok kodu nie jest automatycznie oczyszczany, ale jeśli otworzysz konsolę Chrome i wpiszesz prettyPrint (), kody zostaną poprawnie podświetlone.

EDYTUJ 5 Powodem, dla którego myślę, że to mój problem, nie jest blogger, ponieważ ten facet wciąż ma swój kod sprecyzowany przy użyciu tej samej techniki:http://errorbuster.blogspot.com/2012/07/prettify-syntax-highlighter-for-blogger.html

EDYCJA 6 Jak Jeffery wskazał w swojej odpowiedzi, Dynamics View ładuje zawartość bloga za pomocą AJAX, więc każde wywołanie JS na załadowanie dokumentu zostanie wykonane PRZED załadowaniem rzeczywistej zawartości. W związku z tym każdy skrypt JavaScript wykonany na rzeczywistej zawartości bloga, a nie na dokumencie, jest nieprawidłowy. Sądzę więc, że pytanie brzmi teraz, jak połączyć się z Dynamics Viewajax:complete wydarzenie, jeśli jest coś takiego, ale wątpię, że tak jest. Dziękuję wszystkim, którzy odpowiedzieli. Nie jestem pewien, czy można to uznać za błąd, ale zgłosię problem z blogerem.

WNIOSEK Przeczytaj odpowiedź Jeffery'ego. Znalazł zdarzenie wywołujące funkcję.

questionAnswers(2)

yourAnswerToTheQuestion