私の Web サイトには、ユーザーが画像や動画を Facebook に投稿できるフォームがあります。ファイルを Facebook に直接投稿する必要があるため、Iframe に投稿するフォームを使用しています (投稿が送信された後にユーザーが Facebook の投稿 URL にリダイレクトされないようにするため)。
投稿が送信されている間 (投稿は自分のドメインではなく Facebook ドメインに送信されることに注意してください)、待機中のメッセージをユーザーに提示し、投稿が終了したら iframeonload
イベントを使用して非表示にしますメッセージ。
コードは次のとおりです。
iframe:
<iframe name="uploader" width=2px height=2px style="visibility: hidden" onLoad="locationChange(this)"></iframe>
iframe のロード時にメッセージを非表示にする JavaScript:
function locationChange(ifrm)
{
alert("Iframe Change");
document.getElementById("loadingOff").style.visibility = "hidden";
}
これは、IE9 を除くすべてのブラウザーで機能します。最初にページに入ったときに、IE9 で「iframe の変更」メッセージが表示されます。しかし、投稿が送信された後は表示されません (Chrome と FireFox では、ページに入ったときと投稿が送信された後にメッセージが 2 回表示されます)。
私もこれを使ってみました:
<script type='text/javascript'>
var iframe = document.getElementsByName("uploader");
alert(iframe.toString());
iframe.onload = iframe.onreadystatechange = function(){
if( this.readyState && this.readyState !== "complete" && this.readyState !== "loaded" )
{
alert("Not loaded");
}
alert("Local iframe is now loaded");
}
</script>
そしてこれも:
if (iframe.attachEvent){
iframe.attachEvent("onload", function(){
alert("Local iframe is now loaded.");
});
} else {
iframe.onload = function(){
alert("Local iframe is now loaded.");
};
}
しかし、最後の 2 つはどのブラウザーでも機能しませんでした。onload
イベントを IE9に添付するにはどうすればよいですか?
ありがとう。