2009-06-02 16 views
17

Kiedyś pracowałem nad pluginem jQuery o nazwie "BeautyTips" i działało dobrze. Ale odkąd zainstalowałem IE 8, ta wtyczka przestaje działać, ponieważ potrzebuje Excanvas, aby IE narysować wektory, obrazy itp.Czy można uzyskać Excanvas do pracy w IE 8?

Próbowałem pobrać nowszą wersję Excanvas, ale to w ogóle nie działa. ..

+32

Nadal dmucha mi w głowie, że Microsoft wypuścił IE8 bez rodzimego płótna. – Nosredna

Odpowiedz

10

Spróbuj dołączenie elementu canvas do dokumentu przed inicjalizacji za pomocą excanvas:

var foo = document.getElementById("targetElementID"); 
var canvas = document.createElement('canvas'); 
canvas.setAttribute("width", 620); 
canvas.setAttribute("height", 310); 
canvas.setAttribute("class", "mapping"); 
foo.appendChild(canvas); 
canvas = G_vmlCanvasManager.initElement(canvas); 
16

Nowy tryb "standardów" w IE8 wyłącza niektóre niestandardowe funkcje. Wśród nich VML, który jest używany przez excanvas. Właśnie ustawiłem tryb standardów IE7, więc nadal działa.

<meta http-equiv="X-UA-Compatible" content="IE=7" /> 

Sfrustrowany, ale nie znam żadnej korzyści podniesionej przez IE8.

+0

To całkiem nieźle. Kiedy miałem używać Canvas na IE8, zamiast tego rzuciłem go w tryb dziwactwa, który zasysał. – Nosredna

+0

używał go na początku, ale wciąż miał problemy z innymi częściami strony. ręczne ustawienie zgodności z IE7 poprawiono najbardziej, więc ciągle googlowałem aż znalazłem ten przedmiot. teoretycznie przyszłe IE (o Boże, nie!) pozwoli ci wybrać z szerokiej gamy "standardów", od poprzednich wersji – Javier

+0

mmm, ostatnia wersja wydaje się działać tylko w trybie zgodności, dla mnie też – Peanuts

2

Czy na pewno masz zainstalowaną najnowszą wersję pliku excanvas.js? (wydany w marcu 2009 r., hostowany na nowej stronie projektu Google Code)

Użyłem wtyczki Beauty Tips w IE8 i AFAIK, która działała w trybie macierzystym IE8.

+0

I didn Wiesz, że były nowe excanvas. Dzięki. – Nosredna

1

Najnowsza wersja wtyczki bt rozwiązuje ten problem dla mnie.

+0

@jeff, próbowałem użyć tej wersji, ale nie zadziałało to dla mnie. Musiałem zrobić kilka innych rzeczy, żeby to działało! – AndreMiranda

+0

Używam najnowszej wersji, ale to też nie działa, usunąłem pamięć podręczną, ale nadal nic. Jakieś pomysły ? – Peanuts

14

Tak, mam excanvy pracujące w trybie standardów IE8 (testowane tylko pod kątem wymaganego użycia). W funkcji CanvasRenderingContext2D_ I wykomentowane linii:

//el.style.overflow = 'hidden';//fix IE8

Szerokość i wysokość węzłowi EL był 0 pikseli od 0 pikseli, więc nie ustawiania przelewanie się do ukrytych wytapiany element widoczny.

Zmieniłem nieco kolejność tworzenia canvasPieTimer, aby uzyskać wymagany wynik. Mam nadzieję, że to będzie pomocne.

+0

Wygląda na to, że może to być problem. Wyłączenie przepełnienia dla elementu canvas, z którego korzystałem, naprawiło problem podczas debugowania. – Ian

+0

+1 Chciałbym zagłosować jeszcze więcej! Uratował mnie ogromny ból głowy w trybie zgodności! –

+0

Nie trzeba wyłączać trybu standardowego - jesteś legendą! – bart

0

Dołączenie znacznika canvas jako ciąg html z jQuery nie działa z nową wersją excanvas. Najpierw musisz użyć document.createElement ("canvas").

0

, jeśli ktoś nadal ma ten problem: Porada kosmetyczna w wersji 0.9.5 rozwiązuje ten problem. Jednak jeśli trzeba użyć starszej wersji (jak to zrobić, jak w nowej wersji wprowadzono problem końcówek jest zamknięty przedwcześnie w mojej strony), należy wymienić linię 530 z tych linii:

var canvas = document.createElement('canvas'); 
$(canvas).attr('width', (numb($text.btOuterWidth(true)) + opts.strokeWidth*2)).attr('height', (numb($text.outerHeight(true)) + opts.strokeWidth*2)).appendTo($box).css({position: 'absolute', top: $text.btPosition().top, left: $text.btPosition().left, zIndex: opts.boxzIndex}); 

nadzieję, że to pomaga .

Powiązane problemy