Javascript-форум (https://javascript.ru/forum/)
-   Opera, Safari и др. (https://javascript.ru/forum/css-html-browser/)
-   -   скрипт не работает в opera (https://javascript.ru/forum/css-html-browser/8767-skript-ne-rabotaet-v-opera.html)

De-Lin 11.04.2010 23:44

скрипт не работает в opera
 
Помогите. Пытаюсь самостоятельно разобраться в JavaScript. попался ниже прописанный скрипт. не работает в опере . Что делать? в чем тут дело?
Не обязательно
<style>
<!--
.drag{position:relative;cursor:move}
-->
</style>
<script language="JavaScript1.2">
<!--

/*
Drag and Drop Script-
© Dynamic Drive (www.dynamicdrive.com)
For full source code, installation instructions,
100's more DHTML scripts, and Terms Of
Use, visit dynamicdrive.com
*/

var dragapproved=false
var z,x,y
function move(){
if (event.button==1&&dragapproved){
z.style.pixelLeft= temp1+event.clientX-x
z.style.pixelTop= temp2+event.clientY-y
return false
}
}
function drags(){
if (!document.all)
return
if (event.srcElement.className=="drag"){
dragapproved=true
z=event.srcElement
temp1=z.style.pixelLeft
temp2=z.style.pixelTop
x=event.clientX
y=event.clientY
document.onmousemove=move
}
}
document.onmousedown=drags
document.onmouseup=new Function("dragapproved=false")
//-->
</script>
<img src="Dowl.gif" class=drag>

Aetae 11.04.2010 23:56

Этот скрипт видел мамонтов. Учитесь по учебникам на этом сайте.

subzey 11.04.2010 23:57

if (event.button==1&&dragapproved){

заменяем на
if ((event.button||event.which)==1&&dragapproved){

ибо Microsoft-specific.

далее,
if (!document.all)
return

выкашиваем вообще. Это проверка на Internet Explorer

Aetae 12.04.2010 00:08

Ога, а ещё "pixelLeft","pixelTop" и event которых нет... Проще выкинуть сразу.

subzey 12.04.2010 00:19

Aetae,
window.event-то нет?

Ну, а pixelLeft/pixelTop, это да, кому как повезло. Но, кажется, речь шла только об опере :)

Aetae 12.04.2010 00:44

А что, разве есть? 0_о
аа опера...
Ну всё равно, "скрипт не работает в opera" != "скрипт должен работать только в opera", имхо. Так что даёшь кросс-браузерность.)

subzey 12.04.2010 00:49

<a href="javascript://" onclick="alert(window.event.type)">Click me!</a>

subzey 12.04.2010 00:50

Aetae,
Кроссбраузерность? Тогда выкинуть это говно мамонта и написать/скачать нормальный скрипт.

Aetae 12.04.2010 01:07

О чём я и говорил с самого начала.)

subzey 12.04.2010 01:20

Да. Но исходная задача выполнена, не так ли?

Не думаю, что сайт, на котором будет размещен этот скрипт, во всех остальных оношениях блистателен и безупречен.

lecha22 01.06.2010 14:13

В продолжение темы...я сделал сайт там есть Javascript который увеличивает фото при нажатии мышкой.. работает с Мозилой, с ИЕ, с Хромом.. с Опера ни в какую...подскажите что нужно что бы всё было красиво...

e1f 01.06.2010 14:21

lecha22, нужно сделать все красиво, и поправить скрипт, чтобы он работал с Оперой.

Какой вопрос, такой и ответ.

lecha22 01.06.2010 18:32

e1f
))) я сначала узнать в принципе: поможет кто нибудь или отправят книгу читать...))
а вот скрипт:

<!-- HEAD START HERE -->

<SCRIPT LANGUAGE="JavaScript">
<!-- Original: Jenny Blewitt (webmaster@webdesignsdirect.com) -->
<!-- Web Site: http://www.webdesignsdirect.com -->


<!-- Begin
browserName = navigator.appName;
browserVer = parseInt(navigator.appVersion);

ns3up = (browserName == "Netscape" && browserVer >= 3);
ie4up = (browserName.indexOf("Microsoft") >= 0 && browserVer >= 4);

function doPic(imgName) {
if (ns3up || ie4up) {
imgOn = ("" + imgName);
document.mainpic.src = imgOn;
}
}
// End -->
</script>



<!-- HEAD END HERE -->

я так думаю что нужно что то добавить для опера...знать бы что))

e1f 01.06.2010 18:35

lecha22, скрипт нужно выкинуть, и написать новый -- этому около 100500 лет. К тому же, совершенно неясно, что он делает -- ну присваивает элементу с ID mainpic src, равный значению переменной imgName. Ну и? Проверка на браузеры там вообще не нужна -- она устарела.


Часовой пояс GMT +3, время: 01:16.