두 개의 onload 이벤트를 iframe에 연결하고 다른 onload 시도에서 발생하는 자바 스크립트 코드는 무엇입니까?Iframe에 Hook Onload 이벤트
리디렉션 할 첫 번째 onload가 다음 onload를 원합니다. 이것이 가능한가?
두 개의 onload 이벤트를 iframe에 연결하고 다른 onload 시도에서 발생하는 자바 스크립트 코드는 무엇입니까?Iframe에 Hook Onload 이벤트
리디렉션 할 첫 번째 onload가 다음 onload를 원합니다. 이것이 가능한가?
새로운 답변 질문을 다시 읽은 후
, 난 당신이 별도의 이벤트를 트리거하도록하는 기능을 원 깨달았다. 이것은 달성하기 쉽습니다 : 여기에 가장 중요 무엇
var ifr = document.getElementById('daiframe');
ifr.onload = function(){
ifr.onload = function(){
// do the redirect here
};
};
ifr.src = 'http://initial.url/';
내가 그랬던 것처럼 당신이 iframe이 초기 URL을 취득하기 전에 위의 온로드 코드를 설정한다는 것이다. iframe HTML 코드를 직접 작성한다고 가정 할 때 SRC 속성이 about:blank
을 가리키는 지 확인하십시오.
편집 : 코멘트에 주어진 정보에서 내 이전의 경고 ...
는의는 PHP 부분은 다음과 같습니다 가정 해 봅시다 :
그 코드로 변경해야$code = '<iframe src="http://some.url/"></iframe>';
echo $code;
:
$code = '<iframe src="http://some.url/"></iframe>';
echo str_replace('<iframe ', '<iframe onload="ifrLoaded();" ', $code);
?><script type="text/javascript">
var alreadyLoaded = false;
function ifrLoaded(){
if(alreadyLoaded){
// do your redirect
}else{
alreadyLoaded = true;
}
}
</script>
올드 응답
다음과 같은 것이 있습니까?
function appendEvent(el, name, fn){
if(typeof el[name] == 'function'){
var oldfn = el[name];
el[name] = function(){
oldfn.apply(this, arguments);
fn.apply(this, arguments);
};
}else{
el[name] = fn;
}
}
var ifr = document.getElementById('daiframe');
appendEvent(ifr, 'onload', function(){});
appendEvent(ifr, 'onload', function(){ /* do the redirect */ });
ifr.src = 'http://target.url/'; // since onload fires only after the URL is set
나는 OP가 찾고 있다고 생각하지 않는다. 그는 하나의 이벤트 처리기를 원하지만 다른 로딩에서 다른 동작을 원합니다. –
예, 편집 된 답변. – Christian
ifr.src = 'http : //initial.url/';; 나는 iframe을 호스팅하지 않습니다. 코드 – user1684086
이 방법은 iframe 두 온로드 이벤트를 수신입니까? – Nelson
첫 번째는 iframe이로드 될 때입니다. 두 번째는 iframe이 제출되고 결과가 표시 될 때입니다. – user1684086
표시되는 결과를 제어하면 결과 페이지 자바 스크립트에서 리디렉션을 수행 할 수 있습니다. – Nelson