Javascript-форум (https://javascript.ru/forum/)
-   Events/DOM/Window (https://javascript.ru/forum/events/)
-   -   ка настроить под ие (https://javascript.ru/forum/events/27688-ka-nastroit-pod-ie.html)

cyber 21.04.2012 15:24

ка настроить под ие
 
данный скрипт не работает в ие 8 и ниже почему?
из className?
function sliceText(){
    var lengthArray,endLen,resultText,findEndSymols,fullLink;
	var AllClass=document.getElementsByClassName("text");

    for(var i=0;i<AllClass.length;i++)
    {
		
        lengthArray=AllClass[i].innerHTML.length;//длина текстовой строки
 
    if(lengthArray>200){
		//-------------------------------------
	
    fullLink=document.createElement('a');
    //создание ссылки на полный текст
    fullLink.setAttribute("href"," ");
    fullLink.setAttribute("onclick","Fulltext(this);return false;");
    fullLink.innerHTML="Смотреть полностью...";
		//-------------------------------------
        /*выводится только 30% текста */
        endLen=(lengthArray/100)*30; 
        //--------------------
        findEndSymols=AllClass[i].innerHTML.slice(endLen);
        findEndSymols=findEndSymols.indexOf(" ");
        endLen=endLen+findEndSymols;//вырезать начиная с пробела
        //-------------------- 
        resultText=AllClass[i].innerHTML.slice(0,endLen)+"<span class='notVisible'>"+AllClass[i].innerHTML.slice(endLen)+"</span>";
		AllClass[i].innerHTML=resultText+"  ";
        AllClass[i].appendChild(fullLink);
         
        }
     
     
    }
}

function Fulltext(obj){ 
if(obj.parentNode.childNodes[(obj.parentNode.childNodes.length-3)].nodeType == 1){
	obj.parentNode.childNodes[(obj.parentNode.childNodes.length-3)].style.display="inline";
	obj.parentNode.removeChild(obj);
}
else alert("Проблема при обработке span");
}

Octane 21.04.2012 15:28

getElementsByClassName не поддерживается

cyber 21.04.2012 15:47

Цитата:

Сообщение от Octane (Сообщение 170334)
getElementsByClassName не поддерживается

я знаю.
я не наншел чем можно заменить для ие

Octane 21.04.2012 15:50

https://www.google.ru/search?q=getEl...implementation

cyber 21.04.2012 16:16

эт конечно хорошо но за 6 страниц не одной ссылки на ру сайт.
у меня не на столько хорошие знания английского...

devote 21.04.2012 16:29

document.getElementsByClassName = document.getElementsByClassName || function( className ) {

    var atElem = this && this.nodeType && this || document,
        elems = atElem.getElementsByTagName( '*' ),
        result = [], elem;

    for( var i = 0; elem = elems[ i++ ]; ) {

        if ( elem.className && ( (" " + elem.className + " ").indexOf( " " + className + " " ) >= 0 ) ) {
            result[ result.length ] = elem;
        }

    }

    return result;
}

cyber 21.04.2012 16:49

спасибо

cyber 21.04.2012 18:44

а что скажите насчет такого кода?
function browserIE(FindClass){
	//ie6 test
	var allSpan=document.getElementsByTagName('*');
	var arrElements=[],g=0;
	for(var i=0;i<allSpan.length;i++){
		
		if(allSpan[i].className==FindClass){
		arrElements[g]=allSpan[i];
		g++;
		}
		
		}
	return arrElements;
	
	//---------------------------------------
	}

SindBad 22.04.2012 17:46

Будет работать только если селектор точно совпадает со значением атрибута class. Предыдущий лучше.
А ещё можно обойтись без g, ну хотя бы так:
arrElements[arrElements.length]=allSpan[i];
или с помощью .push


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