powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / HTML, JavaScript, VBScript, CSS [игнор отключен] [закрыт для гостей] / динамические фрэймы
21 сообщений из 21, страница 1 из 1
динамические фрэймы
    #36098574
Фотография Max Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
На всякий случай спрошу, может кто знает. У меня проблемы с фрэймами iframe, которые динамически добавлены в документ. Динамически ― это значит яваскриптом типа ну как обычно:
Код: plaintext
1.
2.
3.
dim iframeAny;
iframeAny=document.body.appendChild(document.createElement("iframe"));
iframeAny.location="http://sql.ru";
Так вот, эти динамические фрэймы хотя и создаются, но они неактивны, им нельзя дать location.
Проверял только в документе xhtml 1.0, но думаю, в других так же.
Со статическими же фрэймами такого нет ― всё работает. Статические ― это такие, которые прописаны к html.
Будут ли у кого-то комментарии?

Да хранит Вас Господь и Покров Пресвятой Богородицы на многая и благая лета
...
Рейтинг: 0 / 0
динамические фрэймы
    #36098587
Фотография Max Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
вместо dim читай var
...
Рейтинг: 0 / 0
динамические фрэймы
    #36098597
Фотография Яростный Меч
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Max ProТак вот, эти динамические фрэймы хотя и создаются, но они неактивны, им нельзя дать location.Так ведь src , а не location.
http://wdh.suncloud.ru/dhtml08.htm#ref4823
...
Рейтинг: 0 / 0
динамические фрэймы
    #36098607
ShSerge
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
<html>
<script>
function clc(){
iframeAny=document.body.appendChild(document.createElement("iframe"));
iframeAny.src="http://sql.ru";
document.body.appendChild(iframeAny);
}
</script>
<body>
<button onclick="clc()">Click</button>
</body>
...
Рейтинг: 0 / 0
динамические фрэймы
    #36098612
ShSerge
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Пардон, не увидел аппендЧилд.
Да и Яростный Меч уже ответил.
...
Рейтинг: 0 / 0
динамические фрэймы
    #36098629
Фотография Яростный Меч
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Кстати, о динамическом создании фрейма:
тут что-то говорится об обязательности name в IE...
...
Рейтинг: 0 / 0
динамические фрэймы
    #36098858
Фотография Max Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Не могу понять при чём здесь src?
Я с уважением, отношусь ко всем собеседникам sql.ru, но src я никак не ожидал.
Теоретически должен быть лишь объект location и всё.
Ну пускай даже src, его можно через setAttribute() добавить. Всё равно, динамические фрэймы неактивны: им невозможно в форме target прописать. Ну неактивны, неактивны.
Такой код, например, не прокатывает:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
var iframeAny;
var formAny;
if(navigator.appName.indexOf("Microsoft")!=- 1 )
{
	iframeAny= document.createElement("<iframe name='iframeAny'>");   
}
else
{
	iframeAny= document.createElement("iframeAny");
	iframeAny.name="iframeAny";
}
document.body.appendChild(iframeAny);
formAny=document.body.appendChild(document.createElement("form"));
formAny.action="http://sql.ru/forum/actualpost.aspx";
formAny.encoding = "multipart/form-data";
formAny.method="post";
formAny.name="formAny";
formAny.target="iframeAny";
Так вот, target будет установлено как бы на фрэйм, но по факту откроется новое окно.
А если использовать статический фрэйм, то всё будет в порядке.

Я думаю, что это сделали в целях защиты от какой-то уязвимости, так как теоретических ограничений нет.
...
Рейтинг: 0 / 0
динамические фрэймы
    #36098865
Фотография Max Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
вместо
document.createElement("iframeAny")
читать
document.createElement("iframe")

опечатки лезут, мать из за ногу
...
Рейтинг: 0 / 0
динамические фрэймы
    #36098873
Фотография Яростный Меч
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Max Pro,

визивиг для форума делаешь? )))
...
Рейтинг: 0 / 0
динамические фрэймы
    #36098921
Фотография Max Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
кстати src работает (это странно). но page.target нет.
...
Рейтинг: 0 / 0
динамические фрэймы
    #36098952
Фотография Ex_Soft
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Max Pro
кстати src работает (это странно)

Что ж тут странного? Как уже сказал Яростный Меч, src для iframe, а location.href - для document.getElementById("iframeid").contentWindow
_________________
"Helo, word!" - 17 errors 56 warnings
Posted via ActualForum NNTP Server 1.4
...
Рейтинг: 0 / 0
динамические фрэймы
    #36098976
ShSerge
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
И с локейшином можно:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
<html>
<script>
function clc(){
iframeAny=document.createElement("iframe");
iframeAny.name="iframeAny";
document.body.appendChild(iframeAny);
window.frames[ 0 ].location.href="http://sql.ru";
}
</script>
<body>
<button onclick="clc()">Click</button>
</body>
...
Рейтинг: 0 / 0
динамические фрэймы
    #36098992
Фотография Ex_Soft
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ShSerge
И с локейшином можно:
Код: plaintext
\nwindow.frames[ 0 ].location.href="http://sql.ru";\n

Ха... Сравниваем
Код: plaintext
\n// Call function\nSmthVariable=document.getElementById("SmthIFrame").contentWindow.SmthIFramesFunction();\n// ||\nSmthVariable=frames[SmthIFrameNo].SmthIFramesFunction();\n\n// Get control\'s value\nSmthVariable=document.getElementById("SmthIFrame").contentWindow.document.getElementById("SmthIFramesInput").value;\n// ||\nSmthVariable=frames[SmthIFrameNo].document.getElementById("SmthIFramesInput").value;\n
_________________
"Helo, word!" - 17 errors 56 warnings
Posted via ActualForum NNTP Server 1.4
...
Рейтинг: 0 / 0
динамические фрэймы
    #36099298
Фотография Max Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ex_Soft
Max Pro
кстати src работает (это странно)

Что ж тут странного? ...

Странно, потому, что судя по книжке Дэвида Флэнагана "JavaScript", фрэйма как такового не существует. Есть объект window.
А у объекта window нету свойства src, src ― это атрибут html. За навигацию должен отвечать объект location. Соответственно навигацию можно переключать через location или что то же самое location.href. Поэтому даже если в некоторых обозревателях и работает свойство src, то от его применения стоит уберечься, оно нестандартное и скорее всего будет работать не везде.
...
Рейтинг: 0 / 0
динамические фрэймы
    #36099310
Фотография Яростный Меч
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Max Proоно нестандартное и скорее всего будет работать не везде.
Однако есть стандартные правила, и одно из них - аттрибут (например, тот же src) для элемента (например, iframe) можно просто взять и навесить яваскриптом.
...
Рейтинг: 0 / 0
динамические фрэймы
    #36099316
Фотография Яростный Меч
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Яростный МечMax Proоно нестандартное и скорее всего будет работать не везде.
Однако есть стандартные правила, и одно из них - аттрибут (например, тот же src) для элемента (например, iframe) можно просто взять и навесить яваскриптом.причем даже не обязательно через setAttribute, а по-простому )
...
Рейтинг: 0 / 0
динамические фрэймы
    #36099356
Фотография Ex_Soft
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Max Pro
потому, что судя по книжке Дэвида Флэнагана "JavaScript", фрэйма как такового не существует

Д. Флэнаган "JavaScript. Подробное руководство"
....фреймы в окне представлены объектами Window; JavaScript не делает особого различия между окнами и фреймами...

IMHO, "..не существует..." и "...не делает особого различия..." слегка не одно и то же...
Max Pro
Есть объект window

Д. Флэнаган "JavaScript. Подробное руководство"
Любое окно имеет свойство frames[]. Это свойство ссылается на массив объектов Window, каждый из которых представляет содержащийся внутри окна фрейм.

И в этом случае, как Вы правильно заметили,
Max Pro
За навигацию должен отвечать объект location

Коий и юзаем:
ShSerge
И с локейшином можно:
Код: plaintext
1.
window.frames[ 0 ].location.href="http://sql.ru";

А createElement/getElementById возвращает HTMLIFrameElement у которого уже - src
Max Pro
Поэтому даже если в некоторых обозревателях и работает свойство src, то от его применения стоит уберечься, оно нестандартное и скорее всего будет работать не везде.

Это лично Ваше умозаключение или где-то в букварике увидели? Можно тынць, так сказать, на первоисточник?

P.S. тынць
_________________
"Helo, word!" - 17 errors 56 warnings
Posted via ActualForum NNTP Server 1.4
...
Рейтинг: 0 / 0
динамические фрэймы
    #36099609
Фотография Max Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ex_Soft
...
Это лично Ваше умозаключение или где-то в букварике увидели? Можно тынць, так сказать, на первоисточник?

...

Моё. Первоисточника нет. К фрэймам обычно обращаются по именам name или через объект. С массивом frames[] особо никто не работает. Даже form.target требует имя. И я ещё раз повторяю, что с динамическими фрэймами это не работает. Вывод тут простой: используйте заранее заготовленные статические фрэймы. Тогда всё будет работать, самое главное с настоящим объектом location, а не с каким-то там src.

Спасибо всем за беседу.
...
Рейтинг: 0 / 0
динамические фрэймы
    #36099634
ShSerge
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Яростный Меч...причем даже не обязательно через setAttribute, а по-простому )
Рекомендую сетАттрибуте в том случае, когда нужно сохранить, а потом восстановить иннерХТМЛ. В случае свойств, а не атрибутов, не всегда получится (чаще всего - нет).
ПС. Хоть и оффтоп, но на заметку, так сказать.
...
Рейтинг: 0 / 0
динамические фрэймы
    #36099696
Фотография Яростный Меч
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ShSergeЯростный Меч...причем даже не обязательно через setAttribute, а по-простому )
Рекомендую сетАттрибуте в том случае, когда нужно сохранить, а потом восстановить иннерХТМЛ. В случае свойств, а не атрибутов, не всегда получится (чаще всего - нет).
ПС. Хоть и оффтоп, но на заметку, так сказать. Спасибо, буду знать. :)
...
Рейтинг: 0 / 0
динамические фрэймы
    #36099737
Фотография illion
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Max ProВывод тут простой: используйте заранее заготовленные статические фрэймы. Тогда всё будет работать, самое главное с настоящим объектом location, а не с каким-то там src.

Max Pro,
кажется, Вы не до конца поняли то, что хотел сказать Ex_Soft.

<iframe> мы можем рассматривать в двух ипостасях: как объект Window и как html тег. Господин Флэнаган делает акцент на первой, и в этом контексте дает описания свойств, характерных для объекта Окно (в том числе - location). В Вашем же случае более интересна вторая, и, соответственно, стандартный набор атрибутов тега, в который входит src.

src для фрейма - не "какое-то там" и не "нестандартное и скорее всего будет работать не везде", а вполне себе прописанное в спецификации html4 ( здесь ), и поэтому Вы можете использовать его с чистой совестью.


П.С. Не хочу катить бочку на любимого Флэнагана, и говорить, что он совсем не упоминает про src для фрейма. Он рассматривает location и src как два способа инициирования http-запроса в начале главы 20.
...
Рейтинг: 0 / 0
21 сообщений из 21, страница 1 из 1
Форумы / HTML, JavaScript, VBScript, CSS [игнор отключен] [закрыт для гостей] / динамические фрэймы
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]