0

$('body') に追加しようとしていますが、一部のサイトでは iframe 内で完全な html ページが使用されています。つまり、ページには 2 つ以上の body タグがあり、$('body') を使用しようとしました。 first() ですが、運が悪かったので、何か考えはありますか? htmlタグも同様です。

編集 1 : いくつかのコードを表示する要求に従って、さらに説明します。現在のページに固定 div を追加するクロム拡張機能を作成しています。 div は、ページ内のすべての html/body タグに追加されます。誰かが「ID を指定してください」と言ったように、できません。これは私のページではありません。サーバーで生成された DOM を実際に制御することはできません。注入することしかできません。とにかく、ここに div の追加を処理するコードがあります。

formDiv = jQuery('<div/>', {
    id : 'fform',   
    class :'_fform',
    html : fhtml,
    style : 'left:' + document.body.scrollLeft + ';top:' + document.body.scrollTop
})

$('html').first().append(formDiv);

EDIT 2 : Chrome拡張マニフェストの「all_frames」と関係があると思われます。

4

1 に答える 1

1

サイトがフレーム化されているかどうかを確認し、それに応じて行動しますか?

formDiv = jQuery('<div/>', {
         id : 'fform',   
    'class' :'_fform',
       html : fhtml,
      style : 'left:' + document.body.scrollLeft + ';top:' + document.body.scrollTop
});
if (top === self) {
   $('html').append(formDiv);
} else {
   $(parent.document).append(formDiv);
}

一方、通常は contextWindow にアクセスして iFrame に追加する必要があるため、通常のタグをターゲットにするだけでは問題ありません。

于 2012-12-18T08:34:30.433 に答える