#code
Resizing Browser Windows With JavaScript
So here’s an annoying one – I wanted to resize my browser window automatically, after the page had loaded (in a dynamic pop-up), to meet certain size requirements (namely to match a background image). The problem that I had was that all the different browsers support different methods and properties in relation to the ‘viewport’ (visible area of the browser), so I was having trouble finding a reliable way to do this.
I found a great breakdown over at quirksmode.org, but it didn’t actually work in Safari (2.0.2), so I found that out pretty quickly, because that’s what I’m working in. After a little playing around, I came up with the following modifications, which calculates the amount of chrome visible in the currrent window, and then takes that into account when resizing the entire window size.
I haven’t tested this on too much other than Safari and Firefox on a Mac, but I think it should be reasonably compatible with others.
// Viewable size you want once resized x = 600; y = 400; // Now set the window size for different browser types // all except Explorer if (self.innerHeight) { // Figure out the measurements iX = self.innerWidth; iY = self.innerHeight; oX = self.outerWidth; oY = self.outerHeight; // And resize to match the desired target gX = oX - iX; gY = oY - iY; window.resizeTo(x + gX, y + gY) } // Explorer 6 Strict Mode else if (document.documentElement && document.documentElement.clientHeight) { document.documentElement.clientWidth = x; document.documentElement.clientHeight = y; } // other Explorers else if (document.body) { document.body.clientWidth = x; document.body.clientHeight = y; }
PHP Blogger API License Updated
With a little prompting from someone who needed to known what license the PHP Blogger API code was available under so he could develop something based on it, I’ve finally added a license in with all 3 downloads available. With confirmation from the other 2 authors involved, all 3 packages are now available under a BSD-style license. Enjoy.
Better Random Hex
Eric Scheid (founder of the excellent IAWiki) shot me a line with a more efficient and much sleeker version of my random hex code straight after I posted it, so here it is!
function random_hex() { $color = ''; for ($c = 0; $c < 6; $c++) { $i = rand(0, 15); $color .= substr("0123456789ABCDEF", $i, 1) } $color = '#' . $color; return $color; }
Thanks Eric!
Random Hex
I needed some PHP code to randomly generate me a hex value for use as a color in a webpage. Here’s what I came up with (WARNING: Some colors are UGLY!)
function random_hex() { $color = ''; for ($c = 0; $c < 6; $c++) { $i = rand(0, 15); switch ($i) { case 10 : $i = 'A'; break; case 11 : $i = 'B'; break; case 12 : $i = 'C'; break; case 13 : $i = 'D'; break; case 14 : $i = 'E'; break; case 15 : $i = 'F'; break; default : $i = $i; break; } $color .= $i; } $color = '#' . $color; return $color; }
File Append Function
Here’s a useful function that I wrote for PHP – it just opens a specified file and appends a string to it. It’s very good for logging things.
<?php /** * @return boolean * @param $file FileNameToWriteTo * @param $string StringToWriteToFile * @desc Writes specified string to the end of the file with a linefeed attached */ function file_append($file, $string) { if (is_file($file) && is_writable($file)) { $fh = fopen($file, 'a'); if ($fh) { fwrite($fh, $string . "\n"); fclose($fh); return true; } else { return false; } } else { return false; } } ?>
You might want to consider making the fopen() flags ‘ab’ for binary-safe (now reccommended on php.net) and also changing the ‘\n’ part to the appropriate line-endings for your operating system (\n = *NIX, \r\n = Windows, \r = Mac).