当我使用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>
答案 0 :(得分:2)
不可能
您无法将jQuery应用于其他域iframe。它因安全性而被阻止。
扩展“不可能”......
“Same origin policies”适用:您与来自另一个[域|子域|协议|端口]的iframe内容进行通信的唯一方法是通过postMessage API,这当然需要其他部分(iframe中的文档)来收听你的消息。
OP评论后更新
也许你可以做这样的事情
$('#iframeOne', window.parent.document);
另一种方法
window.parent.$("#iframeOne");
另一种方式
$("#iframeOne", top.document);
如果您知道父窗口的名称,也可以
$("#iframeOne",opener.document)
此处opener
是窗口的名称。