我在iFrame中。我控制内/外/父/子内容,它们都在同一个域内。没有安全例外。
如果我在Chrome控制台中运行此功能,则边框应用完全符合我的要求:
$("[name='PPDGFrame']").css("border", "2px solid #334930");
然而,当我以编程方式执行相同的操作时,它永远不会起作用:
$(document).ready(function() {
$("[name='PPDGFrame'], window.parent.document").css("border", "2px solid #334930");
});
甚至这个:
$(document).ready(function() {
setTimeout(function(){
$("[name='PPDGFrame'], window.parent.document").css("border", "2px solid #334930");
}, 3000);
});
在代码中执行时,不存在任何错误,并且在Console中我清楚地获得了对象的句柄。仍然没有边界。
我做错了什么?
答案 0 :(得分:1)
要将window.parent.document
指定为要在其中搜索的context
for the selector
,应将其作为字符串后面的单独参数传递。
$("[name='PPDGFrame']", window.parent.document)
// ^^
目前,在选择器中,,
被理解为multiple selector而window.parent.document
被视为element selector,其中class selectors正在搜索:
<window class="parent document">
它是一个有效的选择器,这就是您没有收到任何错误的原因。它只是没有匹配任何东西,因为你可能没有在你的文档中有这样的元素。