/ / Zapobieganie ładowaniu treści ukrytego elementu iframe - jquery, iframe, load, modal-dialog, hidden

Zapobieganie ładowaniu treści ukrytego elementu iframe - jquery, iframe, load, modal-dialog, hidden

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 1

Moż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"));
});