Mam stronę główną (właściwie JSP) z ramką iframe wewnątrz niej jako;
<iframe name="abc_frame" id="abc_frame" src="about:blank" frameborder="0" scrolling="no"></iframe>
Teraz na stronie głównej znajduje się wiele linków (renderowanych dynamicznie przez JSP), które mogą próbować ustawić src na jakiś adres URL ...
Teraz moje pytanie brzmi, używając jQuery (może to być live ()), czy mogę zmienić to w taki sposób, aby atrybut „src” dla abc_frame zawsze miał jakąś określoną wartość (np. „SomefixedURL”)
Nie mogę przechwycić kliknięcia linku, ponieważ jest on całkowicie dynamicznie tworzony przez jakiś kod Java i dlatego próbuję zastąpić iframe src?
źródło
jeśli używasz jQuery 1.6 i nowszych , chcesz użyć .prop () zamiast
.attr():
$('#abc_frame').prop('src', url)
Zobacz to pytanie, aby wyjaśnić różnice.
źródło
attr()
zachowanie. Ogólnie rzecz biorąc, nie zgodziłbym się na użycie.prop()
tutaj, ponieważsrc
jest to atrybut, a nie właściwość, jak.prop()
wyjaśnia dokumentacja API dla ciebie, do której prowadzi łącze.Podczas generowania linków ustaw cel na właściwość nazwy iframes i prawdopodobnie nie będziesz musiał w ogóle zajmować się jquery.
<a href="inventory.aspx" target="contentframe" title="Title Inventory"> <iframe id="iframe1" name="contentframe" ></iframe>
źródło
$(document).ready(function() { $('#abc_frame').attr('src',url); })
źródło
Ustawienie atrybutu src nie działa dla mnie. Element iframe nie wyświetlał adresu URL.
U mnie zadziałało:
window.open(url, "nameof_iframe");
Mam nadzieję, że to komuś pomoże.
źródło
<script type="text/javascript"> document.write( "<iframe id='myframe' src='http://www.example.com/" + window.location.search + "' height='100' width='100%' >" ) </script>
Ten kod pobiera parametry url (? A = 1 & b = 2) ze strony zawierającej element iframe i dołącza je do podstawowego adresu URL elementu iframe. Działa na moje potrzeby.
źródło
document.write
jest równoznaczne z użyciemeval()
- podlega wstrzyknięciu skryptu! Używać tylko z najwyższą ostrożnością!Nie możesz ustawić źródła FIX iframe lub uniemożliwić przesyłanie javascript / form do zmiany jego lokalizacji. Jednak można umieścić skrypt onload z działaniem strony i zmiana każdego łącza dynamicznego.
źródło
$(".excel").click(function () { var t = $(this).closest(".tblGrid").attr("id"); window.frames["Iframe" + t].document.location.href = pagename + "?tbl=" + t; });
to jest to, czego używam, nie potrzeba do tego jQuery. w tym konkretnym scenariuszu dla każdej tabeli, którą mam z ikoną eksportu programu Excel, zmusza to ramkę iframe dołączoną do tej tabeli do załadowania tej samej strony ze zmienną w ciągu zapytania, którego strona szuka, a jeśli znaleziona odpowiedź zapisuje strumień z excel MIME i zawiera dane dla tej tabeli.
źródło