Javascript-форум (https://javascript.ru/forum/)
-   Оффтопик (https://javascript.ru/forum/offtopic/)
-   -   Пофиксить скрипт под IE 7 (https://javascript.ru/forum/offtopic/43435-pofiksit-skript-pod-ie-7-a.html)

bic3000 05.12.2013 02:50

Пофиксить скрипт под IE 7
 
Есть скрипт, но он не работает в IE 7, можете что то посоветовать?
это от слайдера на medentmebel.ru этом сайте.
<script language="javascript">
function append(id, tag) {
  var node = document.getElementById(id),
  first = node.lastChild,
  newNode = document.createElement(tag);
  node.insertAfter(newNode, first);
  return newNode;
}

Array.prototype.count = function () {
return this.length;
}
window.tdiff = []; fred = function(a,b){return a-b;};
window.document.onload = function(e){ 
    console.log("document.onload", e, Date.now() ,window.tdiff,  
    (window.tdiff[0] = Date.now()) && window.tdiff.reduce(fred) ); 
    begin();
}
window.onload = function(e){ 
    console.log("window.onload", e, Date.now() ,window.tdiff, 
    (window.tdiff[1] = Date.now()) && window.tdiff.reduce(fred) ); 
    begin();
}
var ticks = 0;
var speed = 25;
function slide() {
var slide = document.getElementById('slide');
var skate = document.getElementById('skate');
var a = skate.getElementsByTagName(a);
ticks++;
if(ticks>4700) {
ticks = 0;
skate.style.left = "-"+ticks+"px";
}
skate.style.left = "-"+ticks+"px";
}
var t = setInterval(function() { slide(); },(1000/speed));
function begin() {
var leftrightslide=new Array();
{::LEFT_RIGHT_SLIDE::}

var c = leftrightslide.count();
var i = 0;
while(i<c) {
document.getElementById('skate').innerHTML = document.getElementById('skate').innerHTML + leftrightslide[i];
i++;
}
}
</script>

спасибо

monolithed 05.12.2013 03:58

методов Date.now, Array.prototype.reduce, console.log и Node.insertBefore нет в IE7, а вместо e должно быть e = e || window.e (хотя вы вроде не используете)

Что это за бред?
window.document.onload = function(e)
window.onload = function(e){


Что такое? {::LEFT_RIGHT_SLIDE::}

bic3000 05.12.2013 12:33

Цитата:

Сообщение от monolithed (Сообщение 284643)
методов Date.now, Array.prototype.reduce, console.log и Node.insertBefore нет в IE7, а вместо e должно быть e = e || window.e (хотя вы вроде не используете)

Что это за бред?
window.document.onload = function(e)
window.onload = function(e){


Что такое? {::LEFT_RIGHT_SLIDE::}

Походу скрипт добавления из папки картинок
<?php
function loadImages($folder) {
    $dh = opendir($folder);
    $images = array();
    if($dh) {
        while($filename = readdir($dh)) {
            if($filename != '.' && $filename != '..') {
                $images[] = $filename;
            }
        }
    }
	closedir($dh);
    return $images;
}

$images = loadImages($_SERVER['DOCUMENT_ROOT'].'/img/krutilka-big');
$fairyTale = '';
if($images) {
	foreach($images as $i=>$image) {
		$href = '/img/krutilka-big/'.$image;
		$src = '/img/krutilka-small/'.$image;
		$fairyTale .= "leftrightslide[".$i."]='<a rel=\"lightbox[roadtrip]\" href=\"$href\"><img rel=\"roadtrip\" src=\"$src\" border=0 /></a>';\n";
	}
}
$content = str_replace('{::LEFT_RIGHT_SLIDE::}', $fairyTale, $content);

danik.js 05.12.2013 12:49

Еще восхищение вызывают вот эти отрывки:
Цитата:

Сообщение от bic3000
Array.prototype.count = function () {
return this.length;
}

Цитата:

Сообщение от bic3000
first = node.lastChild

Цитата:

Сообщение от bic3000
node.insertAfter(newNode, first);

monolithed,
Ты уверен насчет Date.now() и Node.insertBefore() ? IE10 в режиме IE7 имеет эти методы (а вот новые методы Array есть только в IE9+)

monolithed 05.12.2013 12:59

Цитата:

Сообщение от danik.js
Ты уверен насчет Date.now() и Node.insertBefore()

Да уверен, т.к. писал поддержку для них несколько лет назад.

И нет Node.insertBefore, а Node.insertAfter!


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