Posted in ColdFusion | Posted on 12-16-2008 | 2,846 views
Scott just pinged me with an interesting question - can you use ColdFusion.navigate with a "normal" div or does it only work with items generated by ColdFusion 8 (cfdiv, cfwindow, cfpod, etc)? We both tested and discovered that - yes - you certainly can use it with a "vanilla" div - but you must get ColdFusion to preload the proper JavaScript files. Consider this simple demo:
2
3<script>
4function doit() {
5 ColdFusion.navigate('test3.cfm','booger')
6}
7</script>
8
9<a href="javaScript:doit()">load the booger</a><br />
10<div id="booger"></div>
Starting from the bottom up - the div, booger, is our container. I have a test link above it that runs the doit function. doit() then simply uses ColdFusion.navigate. If you just use that portion of the file, though, you will get a client-side JavaScript error saying that ColdFusion doesn't exist. You need to tell ColdFusion to load the the Ajax libraries. This can be done with a simple, empty cfajaximport tag.
Not sure how useful this is, but if you don't have Spry or jQuery loaded and need a simple and fast way to load data via Ajax, this would work well.


If you don't want to save the original contents in a file, you can always assign it's html content in a javascript variable.
i.e: var oldContents = document.getElementById( "booger" ).innerHTML;
or, with jQuery: var oldContents = $( "#booger" ).html();
then, with your reset, you could just reassign the contents to your div
document.getElementById( "booger" ).innerHTML = oldContents;
or
$( "#booger" ).html( oldContents );
:P
I have a <script> on the page I'm loading using ColdFusion.navigate but it seems CF just ignore it when it posts the content on the containert I specified on the ColdFusion.navigate.
Is this the normal behavior? Is there a workaround? Or it's just me doing something wrong?
foo = new function() { ..... }
[Add Comment] [Subscribe to Comments]