jQuery 不适用于 iframe 内容

标签 jquery css iframe input

当使用 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>

最佳答案

不可能

您不能将 jQuery 应用于其他域的 iframe。由于安全原因,它被阻止了。

扩展“不可能”...

Same origin policies”适用:您与来自另一个[domain|subdomain|protocol|port] 的 iframe 内容通信的唯一方式是通过 postMessage API ,这当然需要另一部分(iframe 内的文档)来收听您的消息。

OP评论后更新

也许你可以这样做

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

另一种方法

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

另一种方式

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

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

$("#iframeOne",opener.document)

这里的opener是窗口的名字。

关于jQuery 不适用于 iframe 内容,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18378403/

相关文章:

html - 社交媒体图标——图像还是 CSS 背景图像?

html - 中间有 3 行和可滚动内容的 div

html - IE7 和 z-index

javascript - 以不同方式附加 iframe?

javascript - 如何删除html标签和head标签之间的iframe标签?

javascript - 在 <head> 中包含样式表会产生与 javascript 附加到 head 不同的结果

javascript - 从 json 对象获取属性键

javascript - JXBrowser JSFunctionCallback 和 IFrame

按钮单击时的 JqueryUI 工具提示而不是悬停显示在其他地方

jquery - 从 ASP.NET MVC2 应用程序执行 Ajax 调用时出现问题