1

入力フィールドが jQuery を使用してフォーカスされているときにラベルに css を適用しようとしていますが、うまくいかないようです。お問い合わせフォームは iframe 内に読み込まれます。iframe が使用されていない場合は、正常に動作します - この jsfiddle を確認してください: http://jsfiddle.net/nN3w2/ (iframe がロードされない場合、サーバーがダウンする可能性がありますが、コードは表示されます)。

iframe とお問い合わせフォームは同じドメインにあります。お問い合わせフォームは、私のウェブサイトに php を使用して含まれています。

<script type="text/javascript">
jQuery(document).ready(function($) {
    $("#iframe").contents().find("input").focus(function() {
        $("#iframe").contents().find("label").css('opacity','0');
    });
});
</script>

iframe 以外

<script type="text/javascript">
jQuery(document).ready(function($) {
    $("input").focus(function() {
       $("label").css('opacity','0');
    });

    $("input").focusout(function() {
         if($("input").val() ==="" ) {
           $("label").css('opacity','1');
        }
    });

});
</script>
4

1 に答える 1

2

ありえない

jQuery を他のドメイン iframe に適用することはできません。セキュリティのためブロックされています。

「ありえない」の展開…

Same origin policies」が適用されます。別の [domain|subdomain|protocol|port] からの iframe のコンテンツと通信する唯一の方法は、もちろん他の部分 (iframe 内のドキュメント) を必要とするpostMessage APIを使用することです。 ) をタップしてメッセージを聞きます。

OPのコメント後に更新

おそらく、あなたはこのようなことをすることができます

$('#iframeOne', window.parent.document);

それを行う別の方法

window.parent.$("#iframeOne");

別の方法

$("#iframeOne", top.document);

親ウィンドウの名前がわかっている場合は、次のこともできます

$("#iframeOne",opener.document)

ここopenerにウィンドウの名前があります。

于 2013-08-22T10:53:44.253 に答える