Avatar billede simsen Mester
29. september 2009 - 23:22 Der er 12 kommentarer og
1 løsning

object expected fejl ved kørsel på nettet men ikke lokalt

Hej,

Jeg har følgende kode, som virker ganske glimrende lokalt på min maskine...Ingen fejl overhovedet - det fungerer bare :-)

MEN.....når jeg lægger det ud på en side, får jeg følgende fejl

Object expected.

Den fejler ved følgende:

onmouseover="OnImgMouseOver(event,this);"

Jeg HAR checket der både findes en 2_gummi_thumb.jpg og 2_gummi.jpg.

Kan nogen fortælle mig, hvad jeg gør forkert?

Min kode:

<script language="javascript" type="text/javascript">
    /**********************************************/
    /* EventHandling                                  */
    /**********************************************/
    var slideId = -1;
    var isAminating = false;
    var useSlide = true;
    var supportedBrowser = isSupported();


    function isSupported() {
        if (typeof document.documentElement.style.maxHeight != "undefined") {
            return true;
        }
        return false;
    }

    function slideIn() {
        var layer = document.getElementById('theImg');
        if (layer.height < 418) {
            layer.height += 10;
        }
        if (layer.width < 559) {
            layer.width += 100;
        } // 418 X 559
        if ((layer.height >= 418) && (layer.width >= 559)) {
            clearInterval(slideId);
            isAnimating = false;
        }
    }

    function OnImgMouseOver(ev, caller) {
        if (!supportedBrowser) {
            return;
        }

        if (!isAminating) {
            var elm = caller;
            isAminating = true;
            var parts = new Array();
            var layer = document.getElementById('PopUpLayer');
            if (layer == null) {
                WriteLayers();
                layer = document.getElementById('PopUpLayer');
            }
            parts = elm.getAttribute('src').split('/');
            layer.innerHTML = '<div style="position: relative;margin:0;padding:0;left: 5px; top: 5px;background-color: black;"> <div style="background-color: silver;"> <div style="border: 1px solid black;position: relative;left: -5px;top: -5px;"><img id="theImg" height="0" width="0" src=' + elm.getAttribute('src').replace('_thumb', "") + ' ></div></div> </div>';
            layer.style.top = NewfindPosY(elm) + 'px';
            layer.style.left = NewfindPosX(elm) + elm.width + 10 + 'px';
            layer.style.visibility = 'visible';
            slideId = setInterval(slideIn, 1);
        }
    }

    function OnImgMouseOut(ev) {
        if (!supportedBrowser) {
            return;
        }
        var layer = document.getElementById('PopUpLayer');
        if (layer == null) {
            return;
        }
        layer.style.visibility = 'hidden';
        clearInterval(slideId);
        isAminating = false;
    }


    /**********************************************/
    /* positioning of popuplayer                  */
    /**********************************************/

    function NewfindPosX(obj) {
        var curleft = 0;
        if (obj.offsetParent) {
            while (obj.offsetParent) {
                curleft += obj.offsetLeft
                obj = obj.offsetParent;
            }
        }
        else if (obj.x)
            curleft += obj.x;
        return curleft;
    }

    function NewfindPosY(obj) {
        var curtop = 0;
        if (obj.offsetParent) {
            while (obj.offsetParent) {
                curtop += obj.offsetTop
                obj = obj.offsetParent;
            }
        }
        else if (obj.y)
            curtop += obj.y;
        return curtop;
    }

    function WriteLayers() {
        var body = document.getElementsByTagName('body')[0];
        var layer = document.createElement('div');
        layer.id = 'PopUpLayer';
        layer.name = 'PopUpLayer';
        layer.style.visibility = 'hidden';
        layer.style.position = 'absolute';
        body.appendChild(layer);
    }

       
    </script>

    <table cellpadding="0" cellspacing="0" border="0" width="100%">
        <tr>
            <td style="width: 10%"></td>
            <td style="text-align: center">
                <table cellpadding="0" cellspacing="0" border="0">
                    <tr>
                        <td>
                            2_gummi
                        </td>
                        <td></td>
                        <td>
                            nggshow
                        </td>
                    </tr>
                    <tr>
                        <td>
                            <img alt="" onmouseover="OnImgMouseOver(event,this);" onmouseout="OnImgMouseOut(event,this);" src="Images/2_gummi_thumb.jpg"        />
                        </td>
                        <td style="width: 10px"></td>
                        <td>
                            <img alt="" onmouseover="OnImgMouseOver(event,this);" onmouseout="OnImgMouseOut(event,this);" src="Images/nggshow_thumb.jpg" />
                        </td>
                    </tr>   
                </table>
            </td>
            <td style="width: 10%"></td>
        </tr>
    </table>

mvh
simsen :-)
Avatar billede di8leva Nybegynder
30. september 2009 - 09:10 #1
Jeg kan ikke sige hvad der er fejl, men jeg kan give dig en hint om hvordan du kan finde det.

Brug Firefox for at kigge på siden, og installer et tilläg, "Firebug" så kan du bruge debug af javascript-code.

På den måde kan du måske finde ud hvorfor det ikke virker. Eller så giver du mig linket, så kan jeg pröve med min Firebug.

Undskyld for dårlig dansk, jeg er svensk :)
Avatar billede erikjacobsen Ekspert
30. september 2009 - 09:44 #2
Et link til siden?
Avatar billede simsen Mester
30. september 2009 - 09:59 #3
Jeg kan ikke lige se, hvordan firebug hjælper mig desværre.

Linket er:

http://1654905.shop13.dandomain.dk/shop/cms-3.html
Avatar billede simsen Mester
30. september 2009 - 10:00 #4
Hov glemte at fortælle, hvad scriptet gør ....

OnMouseOver forstørrer billedet (henter nyt billede og forstørrer) :-)
Avatar billede erikjacobsen Ekspert
30. september 2009 - 10:37 #5
Bruger du Firefox siger den:

Fejl: missing } after function body
Kildefil: http://1654905.shop13.dandomain.dk/shop/cms-3.html
Linje: 127, Kolonne: 241
Kildekode:
var layer = document.createElement('div');        layer.id = 'PopUpLayer';        layer.name = 'PopUpLayer';        layer.style.visibility = 'hidden';        layer.style.position = 'absolute';        body.appendChild(layer);    }
Avatar billede erikjacobsen Ekspert
30. september 2009 - 10:40 #6
Det lader til at du ved upload af filen har fået fjernet linieskift i din javascript-kode, så dele af den er blevet kommenteret ud.
Avatar billede di8leva Nybegynder
30. september 2009 - 11:56 #7
Det er som erikjacobson skriver, og fejlen er her:

// 418 X 559
Avatar billede simsen Mester
30. september 2009 - 12:12 #8
Hej Erik,

Længe siden :-) Håber du gider at hjælpe.

Nu har jeg slettet ALT der var udkommenteret. Men den fejler stadig.

Når jeg bruger Firefox og jeg har sat firebug til, hvordan kan jeg så se, hvilken linje der er problemet nu. Jeg kan ikke se nogen fejl meddelelser nogensteder?

Jeg kan ikke længere se at noget bliver udkommenteret når jeg tager en view source.

Problemet ligger hos DanDomain - det er jeg ikke i tvivl om.... F.eks. med at ting bliver udkommenteret. For jeg copy/paster altså alt mellem body tags'ene ind, som jeg har det på skærmen lokalt.
Avatar billede erikjacobsen Ekspert
30. september 2009 - 12:48 #9
I FF: Funktioner  Fejlkonsol.

Den siger nu

Fejl: missing ; before statement
Kildefil: http://1654905.shop13.dandomain.dk/shop/cms-3.html
Linje: 126, Kolonne: 145
Kildekode:
on NewfindPosX(obj) {        var curleft = 0;        if (obj.offsetParent) {            while (obj.offsetParent) {                curleft += obj.offsetLeft                obj = obj.offsetParent;            }        }        else if (obj.x)            curl

Man kan undlade ; hvis man har linieskift.

Du skal hellere løse dit problem: hvorfor forsvinder linieskiftene?
Avatar billede simsen Mester
30. september 2009 - 19:18 #10
Erik

Du er som sædvanlig en dejlig snut....Nu virker det.....Dog med det problem, at den er ekstrem langsom i IE til at vise det store billede men ikke i Firefox - har du nogen idéer til det?

Og rigtig mange tak for hjælpen igen igen :-)
Avatar billede simsen Mester
01. oktober 2009 - 11:04 #11
Har selv fundet ud af det......i hvertfald en smule.....Jeg refererde til billeder ude på nettet. Efter at referere til billeder på serveren, går det lidt bedre.

Undrer mig dog stadig over den tidsforskel der er mellem IE og Firefox - men sådan er der jo så meget i livet :-)

Tak endnu engang Erik. Havde det ikke været for dig og et par andre herinde, havde jeg ikke lært så meget gennem årene som jeg har :-)
Avatar billede erikjacobsen Ekspert
01. oktober 2009 - 12:32 #12
Det er lidt besværligt at se hvad din javascript-kode laver, når det står på een linie. Derfor min opfordring tidligere til at få lineskiftene med over.
Avatar billede simsen Mester
01. oktober 2009 - 22:45 #13
Jeg er godt klar over det - men kan intet gøre ved det....Det er ikke mig, der fjerner de linjeskift og jeg har brokket mig til DanDomain, der kom med den kommentar.........

"Det er nok fordi du linker til et eksternt billede."

Hvorfor tror alle supportere at man er blond, når man er kvinde? *griner*
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester