script crash explorer but not mozilla`

T

thomas

HI
I've written a simpole script to open a new window with an image and
resize the window depending on the image size: it is

function fitToSize()
{
if( window.document.images )
window.resizeTo(window.document.images[0].width+100,
window.document.images[0].height+50);
}

function animUrl(url)
{
var p = 'scrollbars=yes,resizable=yes,toolbar=no,' +
'menubar=no,status=no,location=no,left=85,top=20';

var win = window.open("","animWindow",p);
win.document.writeln('<html>');
win.document.writeln('<head>');
win.document.writeln('<link type="text/css" rel="stylesheet"
href="../style/styleThomas.css">');
win.document.writeln('<script
src="../js/animWindow.js"></script>');
win.document.writeln('</head>');
win.document.writeln('<body id="animWindow"
onload="fitToSize();">');
win.document.writeln('<img name ="imgTag" class="center" src="' +
url + '">');
win.document.writeln('<p><a href="javascript:;"
onclick="self.close();">Close window</a></p>');
win.document.writeln('</body>');
win.document.writeln('</html>');
win.document.close();
//win.resizeTo(win.document.images[0].width,200);
win.focus();

return false;
}

It is very simple. I call it with the following in the html pages:
<a href="javascript:;" onclick="return animUrl('image.gif');">A Gif
image</a>

Clicking on the link crash explorer that immediately freezes.
It works well everywhere else, excpet Opera that complain with an
obnoxious message.

Does anybody see what's obviously wrong in my code?
Thanks

Thomas
 
M

Michael Winter

on 10/11/2003:
HI
I've written a simpole script to open a new window with an image and
resize the window depending on the image size: it is

function fitToSize()
{
if( window.document.images )
window.resizeTo(window.document.images[0].width+100,
window.document.images[0].height+50);
}

function animUrl(url)
{
var p = 'scrollbars=yes,resizable=yes,toolbar=no,' +
'menubar=no,status=no,location=no,left=85,top=20';

var win = window.open("","animWindow",p);
win.document.writeln('<html>');
win.document.writeln('<head>');
win.document.writeln('<link type="text/css" rel="stylesheet"
href="../style/styleThomas.css">');
win.document.writeln('<script
src="../js/animWindow.js"></script>');
win.document.writeln('</head>');
win.document.writeln('<body id="animWindow"
onload="fitToSize();">');
win.document.writeln('<img name ="imgTag" class="center" src="' +
url + '">');
win.document.writeln('<p><a href="javascript:;"
onclick="self.close();">Close window</a></p>');
win.document.writeln('</body>');
win.document.writeln('</html>');
win.document.close();
//win.resizeTo(win.document.images[0].width,200);
win.focus();

return false;
}

It is very simple. I call it with the following in the html pages:
<a href="javascript:;" onclick="return animUrl('image.gif');">A Gif
image</a>

Clicking on the link crash explorer that immediately freezes.
It works well everywhere else, excpet Opera that complain with an
obnoxious message.

Does anybody see what's obviously wrong in my code?
Thanks

Thomas

I don't get a crash, but I do get an 'access denied' error. I think
it's because of a violation of the 'Same Origin Policy': you can't
access properties in a window or frame that didn't originate from the
same domain as the accessing document. As there is no URL at all, IE
probably assumes that no-one should get access - but that's just a
guess. I had the same problem, but there is a simple solution:
include a variable on the calling page that the image window can use
to get the URL. You could actually write a HTML page (rather that
generate one entirely at run-time) that only fills-in the image
source:

<!-- Your !DOCTYPE, HEAD, BODY, etc. for the image window -->
<SCRIPT type="text/javascript">
<!--
document.writeln( '<IMG src="' + window.opener.imageURL + '">' );
// -->
</SCRIPT>
<!-- The rest of your document -->

Hope you have better luck,
Mike
 
T

thomas

I did exactly what you said and it works.
My only regret is that I have to declare this variable imageURL in
every page that use this script.
But thank you very much, since Explorer does not crash anymore.

Thomas
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Members online

No members online now.

Forum statistics

Threads
473,744
Messages
2,569,483
Members
44,903
Latest member
orderPeak8CBDGummies

Latest Threads

Top