私はいくつかのログを表示するウェブページを持っています。ログをクリックすると、iFrameが動的に生成され、iFrameはすべてのデータを読み込みます。私はiFrameページでajaxを使ってデータを最新の状態に保ちました。 setTimeoutを使用してAjaxを実行します。ここに問題があります。 iFrameのURLだけを入力すると、毎秒更新されます。しかし、iFrameを作成するためにjavascriptを使用するログをクリックすると、ajaxを1回実行して停止します。私が間違っていることを確かめることはできませんが、私は思うにはとてもシンプルでなければなりません。Javascript setTimeoutがiFrameで正常に動作しない
//FIRST THE IFRAME IS CREATED
var ifrm = document.createElement('iframe');
ifrm.setAttribute('src', 'iframe.php?username='+user);
ifrm.style.width="100%";
ifrm.style.height="100%";
ifrm.frameBorder="0";
ifrm.setAttribute('id', 'settings');
div.appendChild(ifrm);
//THIS FUNCTION IS IN THE IFRAME
//I REPLACED THE AJAX CODE WITH AN ALERT FOR TESTING
(function timed() {
alert("hi");
setTimeout(timed, 1000);
}());
//NEW CODE IN PARENT, AT BOTTOM OF PAGE, AFTER IFRAME IS CREATED
//THE FUNCTION IN THE IFRAME IS NAMED UPDATE()
<script>
setTimeout(document.getElementById('settings').contentWindow.update(), 1000);
</script>
//IFRAME CODE
function update(){
alert("hi");
}
親にsetTimeoutを使用してiframeをリロードすることはできますか? – sbarnard