iFrame jest bardzo wygodnym sposobem wyświetlania zewnętrznej zawartości na swojej stronie internetowej. Jest to jednak trochę skomplikowane, jeśli chcesz dodać dodatkowy lub zmienić istniejący styl CSS. Nie można po prostu dodać CSS na stronie nadrzędnej/wrapper. W tym samouczku pokażemy Ci, jak użyć JavaScript, aby wstrzyknąć CSS do iFrame.
w poniższym fragmencie, gdy wszystko zostanie załadowane, otrzymamy element iFrame według ID. Następnie pobierz contentDocument i wprowadź nasze style do iFrame za pomocą innerHTML.,
lub możesz to zrobić za pomocą jQuery.
$("#myiFrame").on("load", function() { let head = $("#myiFrame").contents().find("head"); let css = '<style>/********* Put your styles here **********</style>'; $(head).append(css);});
przykład
na przykład, tutaj znajduje się strona samouczka 3D CSS Progressbar, którą chcemy dodać do naszego za pomocą iframe.
<iframe width="1024px" height="768px" src="http://127.0.0.1:5501/bar"></iframe>
Załóżmy, że chcemy zmienić długość paska postępu na 45%. Niestety, nie możemy zrobić czegoś takiego z naszego rodzica CSS.
.bar { width: 45%; /* This will not work */}
spróbujmy użyć JavaScript. Ważne jest, aby poczekać, aż ramka iFrame zostanie załadowana, zanim będzie można wprowadzić CSS., W takim przypadku umieścimy kod w onload Event listener.
oto wynik.
dodawanie pliku CSS do ramki iFrame
możesz dodać cały plik CSS zamiast wstrzykiwać oddzielne style, tworząc link i dodając go do głowy ramki iframe.