"thomas" wrote 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
--
Michael Winter
M.Winter@[no-spam]blueyonder.co.uk (remove [no-spam] to reply)
|