답변:
다음 CSS 접근 방식을 수행했습니다.
<div class="holds-the-iframe"><iframe here></iframe></div>
.holds-the-iframe {
background:url(../images/loader.gif) center center no-repeat;
}
이 코드 가 도움이 될 것이라고 생각합니다 .
JS :
$('#foo').ready(function () {
$('#loadingMessage').css('display', 'none');
});
$('#foo').load(function () {
$('#loadingMessage').css('display', 'none');
});
HTML :
<iframe src="http://google.com/" id="foo"></iframe>
<div id="loadingMessage">Loading...</div>
CSS :
#loadingMessage {
width: 100%;
height: 100%;
z-index: 1000;
background: #ccc;
top: 0px;
left: 0px;
position: absolute;
}
#loadingMessage
났을 때 숨는 지는 이해합니다 load
. 그런데 왜 숨는 거죠 ready
? 너무 이르지 않나요?
addEventListener
하고 사용 하여 위의 코드를 바닐라 자바 스크립트로 바꾸는 것은 어렵지 않습니다 . :-). 또한 질문의 작성자는 . 왜 메시지를 받았는지 알 수 없습니까? :-)querySelector
style
jquery
달성하려는 자리 표시 자일 경우 : 미친 접근 방식은 텍스트를 svg- 배경으로 삽입하는 것입니다. 그것은 약간의 유연성을 허용하며, 내가 읽은 브라우저 지원은 상당히 괜찮을 것입니다 (그래도 테스트하지는 않았습니다).
html :
<iframe class="iframe-placeholder" src=""></iframe>
css :
.iframe-placeholder
{
background: url('data:image/svg+xml;charset=utf-8,<svg xmlns="http://www.w3.org/2000/svg" width="100%" height="100%" viewBox="0 0 100% 100%"><text fill="%23FF0000" x="50%" y="50%" font-family="\'Lucida Grande\', sans-serif" font-size="24" text-anchor="middle">PLACEHOLDER</text></svg>') 0px 0px no-repeat;
}
무엇을 바꿀 수 있습니까?
배경 값 내부 :
글꼴 크기 : font-size = "" 를 찾아 원하는 값으로 변경하십시오.
글꼴 색상 : fill = ""을 찾습니다 . 16 진수 색상 표기법을 사용하는 경우 #을 % 23으로 바꾸는 것을 잊지 마십시오. % 23은 svg- 문자열이 FireFox에서 구문 분석 될 수 있도록하는 데 필요한 URL 인코딩의 #을 나타냅니다.
font-family : look for font-family = "" 여러 단어로 구성된 글꼴이있는 경우 작은 따옴표를 이스케이프해야합니다 (예 : \ 'Lucida Grande \').
text : PLACEHOLDER 문자열 이있는 텍스트 요소의 요소 값을 찾습니다 . PLACEHOLDER 문자열을 URL을 준수하는 모든 문자열로 바꿀 수 있습니다 (특수 문자는 백분율 표기법으로 변환해야 함).
장점 :
단점 :
약간의 유연성 (다국어 등)이 필요한 iframe에서 텍스트를 자리 표시 자로 표시해야하는 경우에만 이것을 권장합니다. 잠시 시간을내어 생각해보십시오.이 모든 것이 정말 필요한가요? 선택권이 있다면 @Christina의 방법으로 갈 것입니다.
$('iframe').load(function(){
$(".loading").remove();
alert("iframe is done loading")
}).show();
<iframe src="http://www.google.com" style="display:none;" width="600" height="300"/>
<div class="loading" style="width:600px;height:300px;">iframe loading</div>
다음은 대부분의 경우에 대한 빠른 솔루션입니다.
CSS :
.iframe-loading {
background:url(/img/loading.gif) center center no-repeat;
}
원하는 경우 애니메이션 로딩 GIF를 사용할 수 있습니다.
HTML :
<div class="iframe-loading">
<iframe src="http://your_iframe_url_goes_here" onload="$('.iframe-loading').css('background-image', 'none');"></iframe>
</div>
onload 이벤트를 사용하면 소스 페이지가 iframe 내에로드 된 후로드 이미지를 제거 할 수 있습니다.
jQuery를 사용하지 않는 경우 div에 ID를 입력하고 다음 코드 부분을 바꿉니다.
$('.iframe-loading').css('background-image', 'none');
다음과 같이 :
document.getElementById("myDivName").style.backgroundImage = "none";
모두 제일 좋다!
<!DOCTYPE html>
<html>
<head>
<title>jQuery Demo - IFRAME Loader</title>
<style>
#frameWrap {
position:relative;
height: 360px;
width: 640px;
border: 1px solid #777777;
background:#f0f0f0;
box-shadow:0px 0px 10px #777777;
}
#iframe1 {
height: 360px;
width: 640px;
margin:0;
padding:0;
border:0;
}
#loader1 {
position:absolute;
left:40%;
top:35%;
border-radius:20px;
padding:25px;
border:1px solid #777777;
background:#ffffff;
box-shadow:0px 0px 10px #777777;
}
</style>
<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.7.2/jquery.min.js"></script>
</head>
<body>
<div id="frameWrap">
<img id="loader1" src="loading.gif" width="36" height="36" alt="loading gif"/>
<iframe id="iframe1" src="https://bots.actcorp.in/ACTAppChat/chat?authtext=test@user8.com&authToken=69d1afc8d06fb97bdb5a9275edbc53b375c3c7662c88b78239ba0cd8a940d59e" ></iframe>
</div>
<script>
$(document).ready(function () {
$('#iframe1').on('load', function () {
$('#loader1').hide();
});
});
</script>
</body>
</html>