Два возможных способа:
@SuppressWarnings("deprecation")
Эти jQuery
функция, которую Вы чаще всего вызываете с $
, берет второй аргумент, названный контекстом, который является, "какой элемент DOM объекта jQuery должен я выполнять в поиске". Большую часть времени Вы опускаете этот аргумент, таким образом, значения по умолчанию контекста к текущему документу HTML. Когда Ваш код выполняется в iframe, значениях по умолчанию документа к документу того iframe. Но можно легко захватить документ для одного из других кадров.
, Например, помещает это в myFrame.html
, и это удалит все h1 элементы из кадра с blah.html
в нем. Заметьте второй аргумент $
, который является выражением, которое захватывает скучный кадр из важного кадра:
<html>
<head>
<script type="text/javascript" src="/javascripts/jquery.js"></script>
<script type="text/javascript">
function doIt() {
$('h1', window.parent.frames[0].document).remove()
}
</script>
</head>
<body>
<h1>My Frame</h1>
<a href="#" onclick="doIt()">Do It</a>
</body>
</html>
Я не уверен в плагине блока, но не можете Вы овладевать соответствующим кадром и управляйте им с помощью "дерева кадра", чего-то вроде этого: (из importantFrame.htm)
parent.theFrame.someProperty = someValue;
, например:
parent.theFrame.location.href='anotherPage.html';
Из того, что я читал, Вам, возможно, понадобился бы JQuery на целевой странице, но Вы могли попробовать что-то как:
parent.theFrame.block();
или возможно:
$('#theFrame').block();
Как сказано в pjb3, установите контекст jQuery. Если у вас есть вложенные фреймы, ваш код будет выглядеть так:
$('*',window.parent.frames[0].frames[0].document).size();
Или, еще лучше, сделайте ярлык:
targetFrame = window.parent.frames[0].frames[0].document;
$('*',targetFrame).size();