Это происходит, когда вы пытаетесь получить доступ к элементу массива с синтаксисом с квадратной скобкой, но вы делаете это по строке, а не по массиву, поэтому операция явно не имеет смысла .
Пример:
$var = "test";
echo $var["a_key"];
Если вы считаете, что переменная должна быть массивом, см., где она появляется и исправить там проблему.
У меня была похожая проблема с толстым почтовым ящиком jQuery (диалоговое окно «Стиль Lightbox»). То, как я исправил свою проблему, заключается в следующем:
function setFocusThickboxIframe() {
var iframe = $("#TB_iframeContent")[0];
iframe.contentWindow.focus();
}
$(document).ready(function(){
$("#id_cmd_open").click(function(){
/*
run thickbox code here to open lightbox,
like tb_show("google this!", "http://www.google.com");
*/
setTimeout(setFocusThickboxIframe, 100);
return false;
});
});
Код не работает без сертификата (). Основываясь на моем тестировании, он работает в Firefox3.5, Safari4, Chrome4, IE7 и IE6.
document.getElementsByName("iframe_name")[0].contentWindow.document.body.focus();
Попытайтесь прислушаться к событиям в родительском документе и передать событие обработчику в iframe документе.
Это - что-то, что работало на меня, хотя это чувствует запах немного неправильного:
var iframe = ...
var doc = iframe.contentDocument;
var i = doc.createElement('input');
i.style.display = 'none';
doc.body.appendChild(i);
i.focus();
doc.body.removeChild(i);
hmmm. это также прокручивает к нижней части содержания. Угадайте, что я должен вставлять фиктивное текстовое поле наверху.
Используя метод contentWindow.focus(), таймаут, вероятно, необходим, чтобы дождаться полной загрузки iframe.
Для меня также работает использование атрибута onload="this.contentWindow.focus()"
, в firefox, в теге iframe