IframeのIframeのデータにアクセスしようとしています。私のjavascript関数を強制的にjqueries.load関数を使用して待機します。しかし、まだ私のJavaScriptコードはiframeのコンテンツが完全に読み込まれる前に "時には"実行されます。ときどき、私はその動作が異なるコンピュータで異なることを意味します。低速のコンピュータでは、ほとんどの場合、コードがほぼ常に実行されるようになっています。だから私は、Internet Explorer 8がonloadイベントを早期に起動すると思われる。 iframeのすべての要素がロードされるまで待つjquery関数はありますか?Iframeのコンテンツ(テキスト、画像)が読み込まれる前にJquery( '#iframeid').load()が実行されます。
これは私のコードです:
function parsePeopleLink(){
try{
//This is where I check if the wanted I frame already exists
if(document.getElementById('isolatedWorkArea') != null) {
if(window.frames[2] != null) {
if(window.frames[2].name == 'isolatedWorkArea') {
//This is where I want the following code only to be executed when the Iframe's content is fully loaded, otherwise I get an access denied error when trying to change Userlinks
$('#isolatedWorkArea').load(function() {
for(var i = 0; i < window.frames.length; i++){
for(var j = 0; j< window.frames[i].document.frames.length; j++){
IframeDocument = window.frames[i].document.frames[j].document;
changeUserLink(findPeopleIDfix(findPeopleID(IframeDocument)),findUserLinks(IframeDocument),8, IframeDocument);
}
}
});
}
else {
throw e; //I know that all the nested else statements are ugly, I just inserted them for testing purposes
}
}
else {
throw e;
}
}
else {
throw e;
}
}
catch(e) {
//alert(e.description);
for(var k = 0; k < window.frames.length; k++)
{
IframeDocument = window.frames[k].document;
changeUserLink(findPeopleIDfix(findPeopleID(IframeDocument)),findUserLinks(IframeDocument),9, IframeDocument);
iframeindex++;
}
}
}
すべてのIフレームを持っている:同じポート、のprotocoll、およびSRCを。 ヘルプは大変ありがとうございます
私は外部コンテンツを読み込もうとしていません。誤解を募らせてください。 Iframe内のコンテンツはUserIdのリンクと画像で、私はこれらのリンクを私が設計したカスタムリンクに変更したいと考えています。私のメインJavascriptスクリプトは親ページによって$(document).ready(function(){})で呼び出されます。この関数(パーサー)はiframe内のすべてのリンクをカスタムリンクに変更する必要があります。 Iframeによってレンダリングされるので、iframeのコンテンツを変更するアクセス権はありません。あなたのソリューションについてもう少し詳しく説明できますか? – Abhischek
親ページはiframeコンテンツにアクセスして、ロードできないことを判断する必要があります。フレーム化されたページは、ロードされたことを親ページに知らせる関数をトリガする必要があります。その後、あなたはparsePeopleLink関数をトリガすることができます。私の言いたいことを示すために上のコードを編集します。 –
コンテンツがSTARTS読み込み時にiframeでLOADイベントが発生し、完了していないときに発生します。 Iframe内から$(document).ready()を実行し、親ウィンドウで関数を呼び出す必要があります。 –