Кривой jsfiddle заворачивает весь ваш код в дополнительную функцию:
<script type='text/javascript'>//<![CDATA[
var VanillaRunOnDomReady = function() {
function myFunc(a,b){
$('<p>a: '+a+'; b: '+b+'</p>').appendTo('div');
};
var a = 1;
var b = 2;
}
var alreadyrunflag = 0;
if (document.addEventListener)
document.addEventListener("DOMContentLoaded", function(){
alreadyrunflag=1;
VanillaRunOnDomReady();
}, false);
else if (document.all && !window.opera) {
document.write('<script type="text/javascript" id="contentloadtag" defer="defer" src="javascript:void(0)"><\/script>');
var contentloadtag = document.getElementById("contentloadtag")
contentloadtag.onreadystatechange=function(){
if (this.readyState=="complete"){
alreadyrunflag=1;
VanillaRunOnDomReady();
}
}
}
window.onload = function(){
setTimeout("if (!alreadyrunflag){VanillaRunOnDomReady}", 0);
}//]]>