Avatar billede rasmusam Nybegynder
11. august 2009 - 20:14 Der er 7 kommentarer og
1 løsning

Matematik fejler i Internet Explorer ("Not Implemented"), men virker i FireFox.

Hej,
Jeg får fejl i følgende JavaScript i Internet Explorer på siden her:
http://getinlive.com/pregame/pitch/9841

Scriptet virker i Firefox og Safari, men fejler også i Chrome og Opera.

Er der et problem med scriptet eller er det matematikken, som er problemet?
Fejlen i Internet Explorer hedder: "Not Implemented".

Håber I kan hjælpe!

mvh,
Rasmus


Scriptet her herunder:
------------------

function convertCords(x,y) {
alphaRad = ((alpha / 180) * 3.14);
x = ((x/1000) * fieldLength);
y = ((y/1000) * fieldHeight);

u = ((Math.cos(alphaRad)*x) + (Math.sin(alphaRad)*y));
v = ((Math.sin(alphaRad)*x) - (Math.cos(alphaRad)*y));

top = (topOffset - u);
left = (leftOffset + v);
return {'x':top,'y':left};
}
Avatar billede olebole Juniormester
11. august 2009 - 22:38 #1
<ole>

Hvor kommer resten af variablerne fra - og hvad er deres værdi?

/mvh
</bole>
Avatar billede olebole Juniormester
11. august 2009 - 22:43 #2
- og det har ikke noget at gøre med Math metoderne  =)
Avatar billede rasmusam Nybegynder
11. august 2009 - 23:15 #3
Hej Olebole

Nej, det tænkte jeg nok. Men jeg undrer mig over "Not implemented" fejlen fremfor en "alm" syntax fejl?


Her er resten af koden:
--------------------

var leftOffset = 72;
var topOffset = 465;
var alpha = 90-10.05;
var fieldHeight = 375;
var fieldLength = 600;

//x er 500, y er 500, når jeg kalder pitchPlaceElement

function pitchPlaceElement(elem,x,y) {
    elem = $(elem);
    var cords = convertCords(parseFloat(x),parseFloat(y));
   
    $(elem).css('top', cords['x'] + 'px');
    $(elem).css('left', cords['y'] + 'px');
}

function convertCords(x,y) {

    alphaRad = ((alpha / 180) * 3.14);
    x = ((x/1000) * fieldLength);
    y = ((y/1000) * fieldHeight);
   
    u = ((Math.cos(alphaRad)*x) + (Math.sin(alphaRad)*y));
    v = ((Math.sin(alphaRad)*x) - (Math.cos(alphaRad)*y));

    top = (topOffset - u);
    left = (leftOffset + v);
    return {'x':top,'y':left};
}
Avatar billede olebole Juniormester
11. august 2009 - 23:37 #4
Når man bruger (i)frames, kan man med JavaScript referere til det 'yderste'/'øverste' window objekt (en frame er et selvstændigt window objekt) med top:
    alert(top.document.body.innerHTML)

Derfor tror JS, at du i linjen:
    top = (topOffset - u);

- prøver at sætte window objektet lig med et tal. Det er af gode grunde ikke implementeret  ;o)

    var top = (topOffset - u);

- så er JS ikke længere i tvivl om, hvad du mener  =)
Avatar billede rasmusam Nybegynder
11. august 2009 - 23:49 #5
Selvfølgelig.!Tak for hjælpen. Tester hurtigst muligt og vender tilbage :)
Avatar billede rasmusam Nybegynder
13. august 2009 - 11:49 #6
Har du smidt et svar, Olebole? Det virker perfekt. Tak igen.
Avatar billede olebole Juniormester
13. august 2009 - 12:51 #7
Selvtak - og svaret kommer her  =)
Avatar billede olebole Juniormester
13. august 2009 - 15:07 #8
Tak for points  =)
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