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。由于安全原因,它被阻止了。

扩展“不可能”...

同源策略”适用:您与来自另一个 [domain|subdomain|protocol|port] 的 iframe 内容进行通信的唯一方法是通过postMessage API,这当然需要另一部分(iframe 内的文档) 收听您的信息。

OP评论后更新

也许你可以做这样的事情

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

另一种方法

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

另一种方式

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

如果您知道父窗口的名称,您也可以这样做

$("#iframeOne",opener.document)

opener是窗口的名称。

于 2013-08-22T10:53:44.253 回答