So I just completed my update of my Facebook app My Amazon Wishlist I converted all of my messy initialization and jquery UI event handling code into a nice neat single variable javascript module. It is sooooo much prettier….cleaner, more modular (it’s right there in the name!), less likely to interfere with any other javascript includes. I briefly contemplated creating javascript objects for the lists….if I were to recode it from the start that’s how I would do it, but for now I’ll leave it as is because cloning the objects is faster and it can stay as is until I decide to implement more features. The back-end is all php objects, and has made it incredibly easy to update and add features, as well as re-use in my wordpress plugin. I also updated from jQuery 1.8.1 to 1.10 and had to update a few deprecated function calls that were removed in 1.9 ….GO $(document).on(‘click’, ‘id’, function(){});!…I also had to replace window.parent.document calls inside an iframe with with jQuery postmessage calls….they actually turned out quite nicely….you have to setup a listener in the parent frame, then in the iframe (or another website even..it solves the cross-domain problem). post the message to the parent. In my case I was sending multiple pieces of data, so I put it into an array, stringified it and passed it to the parent. One thing I would note….in the listener you should make it so that it only accepts messages from the website you expect to be sending messages. Here’s the code from the iframe:
var msgArray = new Object();
msgArray[‘newHeight’] = $(‘#aws-item’).height().toString();
msgArray[‘listNo’] = listNo;
msgArray[‘itemNo’] = itemNo;
msgArray[‘iframeID’] = iframeID;
var message = JSON.stringify(msgArray);
parent.window.postMessage(message, ‘*’);
And so ends my first article for my new website! I think I’ll write the next one on how I localized (L10N) my WordPress plugin http://wordpress.org/plugins/easy-amazon-wishlist/