我在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);
});
在代码中执行时,不存在任何错误,并且在控制台中,我清楚地获得了对象的句柄。仍然没有边界。
我做错了什么?
若要将window.parent.document
指定为要在其中搜索selector
的context
,应将其作为字符串后面的单独参数传递。
$("[name='PPDGFrame']", window.parent.document)
// ^^
目前,在选择器中,,
被理解为多个选择器,window.parent.document
被理解为元素选择器,类选择器搜索:
<window class="parent document">
这是一个有效的选择器,这就是您不会收到任何错误的原因。它只是与任何东西都不匹配,因为您的文档中可能没有这样的元素。