. In my case I have some
I originally wanted to be able to specify where the JS pane's content is included: In the There is something of a hack you can use to get around this though. Let's say your pen is at:
http://codepen.io/lanshen/pen/j7GB5q (I just made that up). Your JS pane has its own URL of:
http://codepen.io/lanshen/pen/j7GB5q.js In the "Stuff for This will cause your JS pane's content to be included in the Here's a little HTML pane to test it out: ABC XYZ
element or just prior to closing the
. By default, CodePen inserts your JS pane content just prior to the close of the
and there's nothing you can do about it for now (July, 2015).
" section in your pen's "Settings", add a tag that refers to your JS pane:
. The obvious problem with this approach is that the JS pane's content will still be included just prior to the
(i.e., it will be included twice). To get around this problem, I structured my JS pane content into an
if()/else()
so that the if()
piece will be loaded in and the
else
piece will be loaded just prior to . Below is the JS pane "template" I used. Again, make sure you reference the JS pane with a
tag in the HTML's "Stuff for
" section as I mentioned above.
var headLoad;
if(!headLoad) { // when loaded in HEAD, headLoad will be falsey
headLoad = {}; // when loaded before , headLoad will be truthy
(function() {
// PUT YOUR JS TO BE EXECUTED IN HEAD HERE...
alert("I am executing in the HEAD!");
headLoad.doSomething = function(mssg) {
// ...
alert(mssg);
};
})();
} else { // this code is not executed until just prior to
// PUT YOUR JS TO BE EXECUTED PRIOR TO HERE...
alert("The BODY is about to close....");
doSomething = function(mssg) {
alert(mssg);
};
doSomething("789");
}