Top-Themen

AppleEntwicklungHardwareInternetLinuxMicrosoftMultimediaNetzwerkeOff TopicSicherheitSonstige SystemeVirtualisierungWeiterbildungZusammenarbeit

Aktuelle Themen

Administrator.de FeedbackApache ServerAppleAssemblerAudioAusbildungAuslandBackupBasicBatch & ShellBenchmarksBibliotheken & ToolkitsBlogsCloud-DiensteClusterCMSCPU, RAM, MainboardsCSSC und C++DatenbankenDatenschutzDebianDigitiales FernsehenDNSDrucker und ScannerDSL, VDSLE-BooksE-BusinessE-MailEntwicklungErkennung und -AbwehrExchange ServerFestplatten, SSD, RaidFirewallFlatratesGoogle AndroidGrafikGrafikkarten & MonitoreGroupwareHardwareHosting & HousingHTMLHumor (lol)Hyper-VIconsIDE & EditorenInformationsdiensteInstallationInstant MessagingInternetInternet DomäneniOSISDN & AnaloganschlüsseiTunesJavaJavaScriptKiXtartKVMLAN, WAN, WirelessLinuxLinux DesktopLinux NetzwerkLinux ToolsLinux UserverwaltungLizenzierungMac OS XMicrosoftMicrosoft OfficeMikroTik RouterOSMonitoringMultimediaMultimedia & ZubehörNetzwerkeNetzwerkgrundlagenNetzwerkmanagementNetzwerkprotokolleNotebook & ZubehörNovell NetwareOff TopicOpenOffice, LibreOfficeOutlook & MailPapierkorbPascal und DelphiPeripheriegerätePerlPHPPythonRechtliche FragenRedHat, CentOS, FedoraRouter & RoutingSambaSAN, NAS, DASSchriftartenSchulung & TrainingSEOServerServer-HardwareSicherheitSicherheits-ToolsSicherheitsgrundlagenSolarisSonstige SystemeSoziale NetzwerkeSpeicherkartenStudentenjobs & PraktikumSuche ProjektpartnerSuseSwitche und HubsTipps & TricksTK-Netze & GeräteUbuntuUMTS, EDGE & GPRSUtilitiesVB for ApplicationsVerschlüsselung & ZertifikateVideo & StreamingViren und TrojanerVirtualisierungVisual StudioVmwareVoice over IPWebbrowserWebentwicklungWeiterbildungWindows 7Windows 8Windows 10Windows InstallationWindows MobileWindows NetzwerkWindows ServerWindows SystemdateienWindows ToolsWindows UpdateWindows UserverwaltungWindows VistaWindows XPXenserverXMLZusammenarbeit
GELÖST

IE workaround für getElementsByName

Frage Entwicklung Webentwicklung

Mitglied: Gushiken

Gushiken (Level 1) - Jetzt verbinden

08.10.2008, aktualisiert 13.10.2008, 4425 Aufrufe, 2 Kommentare

Unter dem IE funktioniert document.getElemetsByName() ja bekannterweise etwas anders als unter dem FF. Da ich das aber beim entwickeln meines aktuellen Projektes nicht wusste hab ich das leider nicht beachtet...

Da es zu aufwändig wäre jedem input eine ID zuzuordnen damit der IE sie auch findet, würde ich gern ein workaround schreiben mit dem der IE die Elemente auch mit dem namen finden kann. Workaurounds gibt es zwar und ich hab auch schon eins eingebaut, aber das ist etwas viel zu langsam da ich die Funktion ca 100 - 150x aufrufe...


Hier also erstmal das aktuelle Workaround:

getName(name,pos,tag)
{
if(!tag){
tag = '*';
}
var elems = document.getElementsByTagName(tag);
var res = []
for(var i=0;i<elems.length;i++){
att = elems[i].getAttribute('name');
if(att == name) {
res.push(elems[i]);
}
}
return res[pos];
}

Ich brauche immer nur ein Element also übergebe ich die POS in dem Array und gebe dann genau dieses Element zurück.

Hat vllt irgendeiner von euch eine schnellere Lösung?? In den meisten Fällen ist der Name sogar eindeutig, vielleicht kann man dadurch noch etwas rumtricksen...

Gruß,
Gushiken
Mitglied: Gushiken
08.10.2008 um 13:27 Uhr
okay, ich bin schonmal einen Schritt weiter... und konnte die Ladezeit des Aufrufs meines Formulars von ca30s (!!!) auf ca 14s reduzieren indem ich aus der for()-Schleife rausspringe sobald ich ein Element mit dem Namen gefunden habe, funktioniert soweit ganz gut.
Allerdings sind diese 14s immernoch viel zu lang... 10s weniger und ich kann damit leben, aber 14s sind untragbar...

naja... vielleicht fällt euch ja noch was ein wie ich die Elemente anders ansprechen kann...

Gruß, Gushiken
Bitte warten ..
Mitglied: Gushiken
13.10.2008 um 10:27 Uhr
okay, ich hab da noch eine andere Möglichkeit gefunden die Elemente anzusprechen. Das ganze funktioniert im IE7 ganz gut, allerdings nicht mit allen Elementen... Warum kann ich nicht sagen.

Man kann viele Element im IE einfach über document.all['name'] oder document.all.name ansprechen. Ist ein Element dort vorhanden ist es wesentlöich schneller es so aufzurufen.
Bitte warten ..
Neuester Wissensbeitrag
Off Topic

"Ich habe nichts zu verbergen"

(2)

Erfahrungsbericht von FA-jka zum Thema Off Topic ...

Heiß diskutierte Inhalte
CPU, RAM, Mainboards
Kaufberatung für mind. 8 verschiedene HighEnd-Mainboards (24)

Frage von yperiu zum Thema CPU, RAM, Mainboards ...

Hyper-V
Langsames Netzwerk i210 LAN Karte (11)

Frage von Akcent zum Thema Hyper-V ...

Netzwerke
Abisolierwerkzeug (11)

Frage von SarekHL zum Thema Netzwerke ...

Windows Server
Server 2016 - Kuriositäten (8)

Frage von certifiedit.net zum Thema Windows Server ...