Смаляване на снимки - JavaScript

nom3r1

Registered
Кода го ползвам за смаляване на големи изображения, но при натискане на изображението то се отваря в pop прозорец. Искам да се отваря в нов под прозорец и да , а не да е в pop.

Предполагам ~>

eval("pop" + String(i) + " = new Function(\"pop = window.open('" + im.src + " ','fullscale','width=400,height=400,scrollbars=1,resizable=1');

Ще трябва да пренапише?

[js]
<script>
window.onload = resizeimg;
function resizeimg(){
if (document.getElementsByTagName){
for (i=0; i<document.getElementsByTagName('img').length; i++){
im = document.getElementsByTagName('img');
if (im.width > 500){
im.style.width = '500px';
eval("pop" + String(i) + " = new Function(\"pop = window.open('" + im.src + " ','fullscale','width=400,height=400,scrollbars=1,resizable=1'); pop.focus();\")");
eval("im.onclick = pop" + String(i) + ";");
if (document.all) im.style.cursor = 'hand';
if (!document.all) im.style.cursor = 'pointer';
im.title = 'Натисни тук, за да я видиш в пълен размер';
}
}
}
}
</script> [/js]
 
Този скрипт е написан на ужасен стил. Трябва да е много стар.

Правят се куп операции по DOM. Това са едни от "най-скъпите" операции в javascript. Проверява се width атрибута на img тага, който освен че трябва да се взема с getAttribute, може въобщеда не присъства. Да не споменавам тази чудесия с прикрепянето на събития чрез eval.

Ето ти по-добър вариант (+ отговор на въпроса ти):
HTML:
<html>
    <head>
        <title></title>
        <script type="text/javascript">
            window.onload = function () {
                var
                    Images    = document.images,
                    count    = Images.length,
                    im,
                    a;

                while( count-- ) {
                    im    = Images[count];

                    if( im.offsetWidth > 500 ) {
                        im.style.width    = '500px';
                        im.style.cursor    = 'pointer';
                        im.setAttribute( 'title', 'Full size' );

                        a = document.createElement( 'a' );
                        a.setAttribute( 'href', im.getAttribute( 'src' ) );
                        a.setAttribute( 'target', '_blank' );

                        im.parentNode.insertBefore( a, im );
                        a.appendChild( im );
                    }
                }
            };
        </script>
    </head>

    <body>
        <img src="http://www.web-tourist.net/webtourist.gif" />
        <img src="http://www.google.bg/images/firefox/sprite2.png" />
    </body>
</html>
 

Back
Горе