parentElement: řetěz skončí u iframe

Webdesign, HTML, CSS, Flash, PHP, ASP, .NET, JavaScript. Kritika www stránek na Smetišti.

Moderátor: Moderátoři Živě.cz

Odeslat příspěvekod Papadimo 6. 4. 2020 10:41

Dobrý den, při volání funkce x.parentElement() v JS mě trápí problém, když element x je uvnitř IFRAME.
Příklad : KořenHTML — BODY — DIV — IFRAME — HTML— span — EM(=x).
poslední element EM je x, na kterém volám x=x.parentElement() (rekurzivně), mělo by x postupně dojít až na kořenové HTML.
Problém je, že když dojde x na HTML uvnitř iframe, potom .parentElement už vrátí null.

Jak tedy pokračovat v hledání nadřazeného elementu, aby to "prolezlo" i skrz iframe?



2. existuje v čistém JS něco jako element.remove() nebo element."detach"() bez nutnosti "to dělat" na rodičovi?
Kód: Vybrat vše
temp=element;
temp.parentElement.removeChild(temp);


3. Existuje v čistém JS něco jako element.findAncestor("div") -- tím myslím najít nejbližší nadřazený element, který ale je typu div.? Hledat tolik předků až bude vyhovovat pravidlu.. Samozřejmě v jquery není problém.
Papadimo
Junior

Odeslat příspěvekod Just_jo 7. 4. 2020 08:14

1. Je to vážně nutné na to jít takto? Není jednodušší třeba začít rovnou u iframe?

2. https://www.w3schools.com/jsref/met_nod ... echild.asp

3. https://www.w3schools.com/jsref/prop_no ... ntnode.asp
Just_jo
Junior
Uživatelský avatar

Odeslat příspěvekod Papadimo 8. 4. 2020 13:12

:1: Ano, je to nutné tak, protože prostě ten daný element je na vstupu. dostanu se pouze k #document (což asi je shadow dom), ale nedostanu se ani na ten iframe.

2. v tom příkladu právě "rodič" je v proměnné (my)list. Chtěl jsem vědět, zda to jde bez toho elementu. (Možná byla matouci ukazka kodu, tam soucasny způsob tedy i to co je v odkazu)

3. To předpokládám, že je pošťouchnutí, abych si to sám naprogramoval a použil metodu nodeName.
Papadimo
Junior


Kdo je online

Uživatelé procházející toto fórum: Žádní registrovaní uživatelé a 0 návštevníků