php.de

Zurück   php.de > Webentwicklung > JavaScript, Ajax und mehr

JavaScript, Ajax und mehr dynamisches Scripten und Interaktion auf Clientebene

Antwort
 
LinkBack Themen-Optionen Thema bewerten
Alt 31.12.2010, 10:13  
Erfahrener Benutzer
 
Benutzerbild von litterauspirna
 
Registriert seit: 24.04.2008
Beiträge: 3.172
PHP-Kenntnisse:
Anfänger
litterauspirna sorgt für eine eindrucksvolle Atmosphärelitterauspirna sorgt für eine eindrucksvolle Atmosphäre
litterauspirna eine Nachricht über ICQ schicken
Standard [Erledigt] Attribute eines kopierten Knotens entfernen

Guten morgen Leute und vorab einen guten Rutsch ins neue Jahr.

Nun zu meiner Frage. Ich kopieren einen Knoten, in meinem Fall ein Bild. Und will nun von dem kopierten Knoten ein Attribut entfernen, aber nicht vom orriginal.

Hier mein Code.

Code:
//bild aus einer galerie in anderen kontainer copieren
var copyImage = function ( idFinalImg, copyImg ) {
    var copy = document.getElementById( copyImg ).cloneNode( true );
    var newImgChild = document.getElementById( idFinalImg ).appendChild( copy );
    var lastImgChild = document.getElementById( idFinalImg ).lastChild;
    
    lastImgChild.removeAttributeNode( document.getElementById( copyImg ).getAttribute( "onclick" ) )
}
Mein Gedankengang war um nicht vom original Knoten die Attribute zu entfernen, dass ich das letzte Hinzugefügte Kind aus dem Knoten wo das Bild hin kopiert wird mir hole.

Und über die Variable lastImgChild wollte ich nun das onclick Attribut aus dem kopierten Knoten löschen. Javascript wirft mir aber in der Fehlerkonsole eine Exception, wirklich schlau werde ich daraus nicht.

Hier die Fehlermeldung.

Zitat:
Fehler: uncaught exception: [Exception... "Could not convert JavaScript argument arg 0 [nsIDOMHTMLImageElement.removeAttributeNode]" nsresult: "0x80570009 (NS_ERROR_XPC_BAD_CONVERT_JS)" location: "JS frame :: http://localhost/Parkatikum_Sedna_So...pierer/copy.js :: anonymous :: line 22" data: no]
Und hier könnt ihr das Beispiel selber mal probieren.

http://www.lit-web.de/image_kopierer/

Was mache ich da falsch bzw. muss ich anders machen?

Vielen Dank schon mal für eure Zeit und Hilfe.

Gruß Litter
__________________
Aus dem Dynamo Lande kommen wir. Trinken immer reichlich kühles Bier. Und dann sind wir alle voll, die Stimmung ist so toll. Aus dem Dynamo Lande kommen wir.
http://www.lit-web.de
litterauspirna ist offline   Mit Zitat antworten
Sponsor Mitteilung
PHP Code Flüsterer

Registriert seit: 21.08.2005
Beiträge: 4682
PHP-Kenntnisse:
Fortgeschritten

Alt 31.12.2010, 12:37  
Erfahrener Benutzer
 
Registriert seit: 17.08.2010
Beiträge: 216
PHP-Kenntnisse:
Fortgeschritten
Dormilich befindet sich auf einem aufstrebenden Ast
Standard

am einfachsten ist, man benutzt gar keine Event Attribute, sondern Event Listener, da hat man dieses Problem gar nicht erst. (soll heißen, die Events werden JavaScript-seitig und nicht HTML-seitig definiert)

im Notfall ginge wahrscheinlich auch
PHP-Code:
lastImgChild.onclick null;
// oder
lastImgChild.onclick undefined
Dormilich ist offline   Mit Zitat antworten
Alt 31.12.2010, 14:06  
Erfahrener Benutzer
 
Benutzerbild von litterauspirna
 
Registriert seit: 24.04.2008
Beiträge: 3.172
PHP-Kenntnisse:
Anfänger
litterauspirna sorgt für eine eindrucksvolle Atmosphärelitterauspirna sorgt für eine eindrucksvolle Atmosphäre
litterauspirna eine Nachricht über ICQ schicken
Standard

Ok das mit den Eventlistenern kapiere ich noch nicht so ganz, aber werde da mal dran bleiben.

Mein Problem konnte ich jedoch nun auf anderem Wege lösen.

Code:
Code:
//entfernen des onclick attributes eines kopierten elementes
var deleteNodesOfCopys = function ( idParentNode ) {
    var parent = document.getElementById( idParentNode );
    var images = parent.getElementsByTagName( "img" );
    
    if ( images.length > 0 ) {
        
        for ( var i = 0; i < images.length; i++ ) {
            var attrEvent = images[i].getAttributeNode( "onclick" );
            if ( attrEvent ) {
                images[i].removeAttributeNode( attrEvent );
            }
        }
    }
}
Vieleicht nicht die optimalste Lösung, aber funktioniert.

Gruß Litter
__________________
Aus dem Dynamo Lande kommen wir. Trinken immer reichlich kühles Bier. Und dann sind wir alle voll, die Stimmung ist so toll. Aus dem Dynamo Lande kommen wir.
http://www.lit-web.de
litterauspirna ist offline   Mit Zitat antworten
Alt 31.12.2010, 14:51  
Erfahrener Benutzer
 
Registriert seit: 17.08.2010
Beiträge: 216
PHP-Kenntnisse:
Fortgeschritten
Dormilich befindet sich auf einem aufstrebenden Ast
Standard

onclick auf null setzen hat wohl nicht funktioniert?
Dormilich ist offline   Mit Zitat antworten
Alt 31.12.2010, 15:06  
Erfahrener Benutzer
 
Benutzerbild von litterauspirna
 
Registriert seit: 24.04.2008
Beiträge: 3.172
PHP-Kenntnisse:
Anfänger
litterauspirna sorgt für eine eindrucksvolle Atmosphärelitterauspirna sorgt für eine eindrucksvolle Atmosphäre
litterauspirna eine Nachricht über ICQ schicken
Standard

Zitat:
Zitat von Dormilich Beitrag anzeigen
onclick auf null setzen hat wohl nicht funktioniert?
Nein funktionierte nicht, darum habe ich einen anderen Weg gewählt, aber das mit den eventlistenern werde ich mir wirklich mal näher anschauen. DAs scheint den Vorteil zu haben das da in einer Funktion Events registriert werden und man dann keine Event Attribute in HTML Nodes mehr braucht. Aber so richtig rappel ich das noch nicht.
__________________
Aus dem Dynamo Lande kommen wir. Trinken immer reichlich kühles Bier. Und dann sind wir alle voll, die Stimmung ist so toll. Aus dem Dynamo Lande kommen wir.
http://www.lit-web.de
litterauspirna ist offline   Mit Zitat antworten
Alt 31.12.2010, 17:15  
Erfahrener Benutzer
 
Registriert seit: 17.08.2010
Beiträge: 216
PHP-Kenntnisse:
Fortgeschritten
Dormilich befindet sich auf einem aufstrebenden Ast
Standard

es gibt sogar noch viel mehr Vorteile.
- du kannst mehr als eine Funktion pro Event ausführen lassen
- du kannst Funktionen in der Bubbling- und Capturing-Phase ausführen (nicht bei IE)
- du kannst Funktionen auch wieder entfernen
Dormilich ist offline   Mit Zitat antworten
Alt 01.01.2011, 11:47  
Erfahrener Benutzer
 
Benutzerbild von litterauspirna
 
Registriert seit: 24.04.2008
Beiträge: 3.172
PHP-Kenntnisse:
Anfänger
litterauspirna sorgt für eine eindrucksvolle Atmosphärelitterauspirna sorgt für eine eindrucksvolle Atmosphäre
litterauspirna eine Nachricht über ICQ schicken
Standard

Zitat:
Zitat von Dormilich Beitrag anzeigen
es gibt sogar noch viel mehr Vorteile.
- du kannst mehr als eine Funktion pro Event ausführen lassen
- du kannst Funktionen in der Bubbling- und Capturing-Phase ausführen (nicht bei IE)
- du kannst Funktionen auch wieder entfernen
Das sind alles Sachen bzw. Argumente die sehr gut klingen, werde ich mir auf alle Fälle mal in de Birne hämmern.

Aber wenn ich das schon wieder lese nicht beim IE, ich kann diesen Mistbrowser nicht leiden, dass dieses Mistding immer sein eigenes Süppchen kocht.

Momentan klappt aber alles wie es soll, natürlich kann man das noch viel besser machen, aber für den Anfang denke ich ists schon gut.

http://www.lit-web.de/image_kopierer
__________________
Aus dem Dynamo Lande kommen wir. Trinken immer reichlich kühles Bier. Und dann sind wir alle voll, die Stimmung ist so toll. Aus dem Dynamo Lande kommen wir.
http://www.lit-web.de
litterauspirna ist offline   Mit Zitat antworten
Antwort


Themen-Optionen
Thema bewerten
Thema bewerten:

Forumregeln
Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are an
Gehe zu

Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
Alle Zeilenumbrüche zwischen UL-Tags entfernen (preg_replace)? Loungelicious PHP Einsteiger 1 29.11.2010 00:04
[Erledigt] &quot;ONSELECTSTART&quot; is not a valid attribute FreddyS HTML, Usability und Barrierefreiheit 2 11.08.2009 15:03
Presberechnung Webshop Attribute ph|L JavaScript, Ajax und mehr 2 04.08.2009 13:05
Mit DOM Attribute in extra Zeile schreiben Tropic Thunder PHP Tipps 2009 4 07.04.2009 14:51
[Erledigt] Whitespaces entfernen Quecksilber PHP Tipps 2008 8 16.11.2008 13:10
Alles html aus einem String entfernen? BartTheDevil89 PHP Tipps 2008 3 08.10.2007 15:12
XSLT: Attriute entfernen Basti HTML, Usability und Barrierefreiheit 1 17.10.2006 00:40
Zeichen \n und \r entfernen madSoul PHP Tipps 2006 7 11.08.2006 07:54
there is no attribute "BACKGROUND" ?? Fehler beim Buschdieb HTML, Usability und Barrierefreiheit 4 23.04.2006 21:58
\ entfernen Stinger PHP Tipps 2005-2 3 10.07.2005 19:35
Primärschlüssel da. Wie an andere Attribute rankommen? Datenbanken 1 07.06.2005 10:27
Regex für attribute in quelltexten robo47 PHP Tipps 2005 6 27.01.2005 18:29
Variable entfernen Adrenochrom PHP Tipps 2005 2 02.01.2005 01:23
Zeichen aus eine, ".txt" File entfernen PHP Tipps 2004 2 28.06.2004 17:37

Besucher kamen über folgende Suchanfragen bei Google auf diese Seite
could not convert javascript argument arg 0, js alle attribute kopieren, php dom attribute entfernen, dom und php kinder löschen, php dom alle attribute entfernen, javascript alle attributes entfernen, bild attribute löschen

Alle Zeitangaben in WEZ +2. Es ist jetzt 09:00 Uhr.




Powered by vBulletin® Version 3.7.2 (Deutsch)
Copyright ©2000 - 2012, Jelsoft Enterprises Ltd.
Search Engine Optimization by vBSEO 3.2.0
Aprilia-Forum, Aquaristik-Forum, Liebeskummer-Forum, Zierfisch-Forum, Geizkragen-Forum