/ / Nie można zastosować obramowania do elementu iframe z wewnątrz elementu iframe - javascript, jquery, css, iframe

Nie można zastosować obramowania do elementu iframe z wewnątrz elementu iframe - javascript, jquery, css, iframe

Jestem wewnątrz ramki iFrame. Kontroluję zawartość wewnętrzną / zewnętrzną / nadrzędną / podrzędną i wszystko to znajduje się w tej samej domenie. Nie ma wyjątków bezpieczeństwa.

Jeśli uruchomię to w konsoli Chrome, obramowanie zostanie zastosowane dokładnie tak, jak chcę:

$("[name="PPDGFrame"]").css("border", "2px solid #334930");

Jednak kiedy robię dokładnie to samo programowo, to nigdy nie działa:

$(document).ready(function() {
$("[name="PPDGFrame"], window.parent.document").css("border", "2px solid #334930");
});

Albo nawet to:

$(document).ready(function() {
setTimeout(function(){
$("[name="PPDGFrame"], window.parent.document").css("border", "2px solid #334930");
}, 3000);
});

Po uruchomieniu w kodzie nie ma błędów, aw konsoli wyraźnie dostaję uchwyt do obiektu. Nadal nie ma granicy.

Co ja robię źle?

Odpowiedzi:

1 dla odpowiedzi № 1

Sprecyzować window.parent.document jako context dla selector aby przeszukać, należy go przekazać jako oddzielny argument po ciągu.

$("[name="PPDGFrame"]", window.parent.document)
//                   ^^

Obecnie znajdujący się w selektorze , jest rozumiany jako selektor wielokrotny i window.parent.document jako selektor elementów z selektory klasy szukać:

<window class="parent document">

Jest to prawidłowy selektor, dlatego nie pojawiają się żadne błędy. To po prostu nie pasuje do niczego, ponieważ prawdopodobnie nie masz takiego elementu w swoim dokumencie.