Mam wiele ukrytych <div>
tagi, z (display: none)
, do którego wzywam, gdy chcę załadować modalny jQuery. Każdy z tych <div>
tagi zawierają <iframe>
który wywołuje inną stronę.
Aby nie obciążać strony powoli, zastanawiam się, czy istnieje sposób, aby temu zapobiec <iframe>
od ładowania strony, dopóki nie zadzwonię do <div>
w modalu?
Odpowiedzi:
13 dla odpowiedzi nr 1Możesz załadować ramki iframe po renderowaniu html, podając puste src w html iframe, a następnie przypisując src przez jquery / javascript.
Html
<iframe id="iframe1" ></iframe>
JavaScript, iframe może być załadowany na niektóre działania, takie jak kliknięcie przycisku
document.getElementById("iframe1").src="/default.aspx";
Tak jak kern3l powiedział, możemy dodać atrybut danych w iframe do przechowywania src zamiast twardego kodowania.
Html
<iframe id="iframe1" data-frameSrc="/default.aspx"></iframe>
JavaScript
ifrmame1 = $("#iframe1")
ifrmam1.src = ifrmam1.data("frameSrc");
Możesz także utworzyć nową ramkę w jquery i przypisać src, to załaduje stronę z pustą ramką.
$("<iframe>", {
src: "/default.aspx",
id: "myFrame",
frameborder: 0,
scrolling: "no"
}).appendTo("#parentDivId");
LUB
var iframe = document.createElement("iframe");
iframe.frameBorder=0;
iframe.width="300px";
iframe.height="250px";
iframe.id="myFrame";
iframe.setAttribute("src", "/default.aspx");
document.getElementById("parentDivId").appendChild(iframe);
3 dla odpowiedzi № 2
Po prostu użyj jednego elementu iframe:
<iframe id="page" src=""></iframe>
następnie assign src
na each click
z button/link
:
załóżmy, że to jest html:
<ul>
<li><a href="myfolder/myPage1.html">Page 1</a></li>
<li><a href="myfolder/myPage2.html">Page 2</a></li>
</ul>
następnie jquery:
$("ul li a").click(function(e){
e.preventDefault();
$("#page").attr("src", $(this).attr("href"));
});