| Autor | Zpráva | ||
|---|---|---|---|
| josef33 Profil * |
#1 · Zasláno: 6. 11. 2014, 21:07:11
Zdravím. Mám problém. Tento skript funguje v IE 10 (včetně) a níže, v novějších prohlížečích bohužel ne (IE 11, aktuální Chrome, Firefox, Opera). Můžete mi někdo z vás poradit, v čem je zakopaný pes...
Díky moc var dragapproved=false
var z,x,y
function presun(){
if (event.button==1&&dragapproved){
z.style.pixelLeft=temp1+event.clientX-x
z.style.pixelTop=temp2+event.clientY-y
return false
}
}
function posuny(){
if (!document.all)
return
if (event.srcElement.className=="tazeni"){
dragapproved=true
z=event.srcElement
temp1=z.style.pixelLeft
temp2=z.style.pixelTop
x=event.clientX
y=event.clientY
document.onmousemove=presun
}
}
document.onmousedown=posuny
document.onmouseup=new Function("dragapproved=false") |
||
| Joker Profil |
#2 · Zasláno: 6. 11. 2014, 22:05:17
josef33:
Ten kód mi připadá dost prasácký a těžko se v tom orientuje. Chybějící středníky, odsazení, mezery kolem operátorů… Ale zkusím si tipnout, že problém bude v používání zastaralého window.event, které asi některé prohlížeče (už?) nepodporují. |
||
| josef33 Profil * |
#3 · Zasláno: 6. 11. 2014, 22:20:56
Joker:
Jde o jednoduchý skript na drag and drop funkci. V IE 10 chytnu objekt a přetáhnu na místo, v novějších prohlížečích na objekt kliknu a nic se neděje (jako by tam skript nebyl)... Myslíš, že by šel window.event v rámci skriptu nahradit "něčím aktuálním"? |
||
| juriad_ Profil * |
#4 · Zasláno: 6. 11. 2014, 22:46:41
Co ty pixel* vlastnosti. Krátkým hledáním jsem nasel, ze nejsou podporované minimálne Firefoxem.
Jak ríká Joker, ten kus kódu je fakt príserný. Radeji to napis znovu. |
||
| Davex Profil |
josef33:
„v novějších prohlížečích bohužel ne (IE 11, aktuální Chrome, Firefox, Opera)“ Tyto prohlížeče nemají ve standarním režimu document.all (IE11 a Firefox by ho ještě mohly umět v kompatibilním režimu).
|
||
| josef33 Profil * |
#6 · Zasláno: 6. 11. 2014, 22:57:47
Davex:
Mohl bys mi, prosím, sdělit čím to nahradit? |
||
| Davex Profil |
#7 · Zasláno: 6. 11. 2014, 23:20:09
|
||
| Chamurappi Profil |
#8 · Zasláno: 7. 11. 2014, 01:46:54
Reaguji na Jokera:
„zkusím si tipnout, že problém bude v používání zastaralého window.event, které asi některé prohlížeče (už?) nepodporují“ S globálním window.event má filozofický problém jen Mozilla, ostatní prohlížeče ho podporují a zřejmě hned tak nepřestanou. Není to něco, co by zastaralo, jen jiný pohled na DOM 0.
Reaguji na Davexe: „Tyto prohlížeče nemají ve standarním režimu document.all“
Webkit má. Ale projde vyhazovací podmínkou if (!document.all) return, podobně, jako by prošel Firefox v quirku. Ta podmínka bude dost možná jedinou překážkou v Exploreru 11 a v Chromu. (Čímž neříkám, že má cenu uvedený kód opravovat.)
|
||
| josef33 Profil * |
#9 · Zasláno: 8. 11. 2014, 10:06:07
Díky za příspěvky. Nakonec jsem pro starší verze prohlížečů nechal původní (výše uvedený) skript a pro aktuální prohlížeče jsem zvolil řešení v podobě jQuery. Snad je to korektní řešení.
|
||
| Joker Profil |
#10 · Zasláno: 8. 11. 2014, 14:08:54
josef33:
Rozlišovat prohlížeče často nebývá dobrý nápad. Ten nový kód pro starší prohlížeče nefunguje? |
||
|
Časová prodleva: 12 let
|
|||
0