Forum Moderators: open

Message Too Old, No Replies

JS and Safari -- any way to get this popup window script to work?

auto-sizing popup windows and Safari

         

crunch hardtack

7:22 pm on Jul 15, 2005 (gmt 0)

10+ Year Member



Hi all, I'm not a programmer so please bear with me. :-)
I got this script from codelifter.com and it works great in Firefox and
IE/PC, but Safari 1.3 doesn't do anything but open a blank window
titled "about:blank." Is there something that Safari needs to "see" this script properly, or does anyone have a similar but more universally-compatible script?
I'm on a Mac using Dreamweaver MX 2004.
Any help would be greatly appreciated!

Here's the script:

<script>

// Script Source: CodeLifter.com
// Copyright 2003
// Do not remove this notice.

// SETUPS:
// ===============================

// Set the horizontal and vertical position for the popup

PositionX = 160;
PositionY = 100;

// Set these value approximately 20 pixels greater than the
// size of the largest image to be used (needed for Netscape)

defaultWidth = 600;
defaultHeight = 600;

// Set autoclose true to have the window close automatically
// Set autoclose false to allow multiple popup windows

var AutoClose = true;

// Do not edit below this line...
// ================================
if (parseInt(navigator.appVersion.charAt(0))>=4){
var isNN=(navigator.appName=="Netscape")?1:0;
var isIE=(navigator.appName.indexOf("Microsoft")!=-1)?1:0;}
var optNN='scrollbars=no,width='+defaultWidth+',height='+defaultHeight+',left='+PositionX+',top='+PositionY;
var optIE='scrollbars=no,width=150,height=100,left='+PositionX+',top='+PositionY;
function popImage(imageURL,imageTitle){
if (isNN){imgWin=window.open('about:blank','',optNN);}
if (isIE){imgWin=window.open('about:blank','',optIE);}
with (imgWin.document){
writeln('<html><head><title>Loading...</title><style>body{margin:0px;}</style>');writeln('<sc'+'ript>');
writeln('var isNN,isIE;');writeln('if (parseInt(navigator.appVersion.charAt(0))>=4){');
writeln('isNN=(navigator.appName=="Netscape")?1:0;');writeln('isIE=(navigator.appName.indexOf("Microsoft")!=-1)?1:0;}');
writeln('function reSizeToImage(){');writeln('if (isIE){');writeln('window.resizeTo(100,100);');
writeln('width=100-(document.body.clientWidth-document.images[0].width);');
writeln('height=100-(document.body.clientHeight-document.images[0].height);');
writeln('window.resizeTo(width,height);}');writeln('if (isNN){');
writeln('window.innerWidth=document.images["George"].width;');writeln('window.innerHeight=document.images["George"].height;}}');
writeln('function doTitle(){document.title="'+imageTitle+'";}');writeln('</sc'+'ript>');
if (!AutoClose) writeln('</head><body bgcolor=000000 scroll="no" onload="reSizeToImage();doTitle();self.focus()">')
else writeln('</head><body bgcolor=000000 scroll="no" onload="reSizeToImage();doTitle();self.focus()" onblur="self.close()">');
writeln('<img name="George" src='+imageURL+' style="display:block"></body></html>');
close();
}}

</script>

dcrombie

9:24 am on Jul 16, 2005 (gmt 0)



The code you're using dates back to the 'browser wars' and will only work for browsers that have 'Netscape' or 'Microsoft' in the USER_AGENT string. Safari has neither.

crunch hardtack

10:29 pm on Jul 17, 2005 (gmt 0)

10+ Year Member



Thanks. This was the only script of it's kind that I found with a Google search... The others were too complicated to implement.
Any advice on where to find good, current scripts in the future?

Thanks again.