|
|
|
| Помогите разобраться, есть html страница
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=windows-1251">
<title>TEST</title>
</head>
<script language="javascript" src="test.js"></script>
</html>
|
файл test.js содержит
document.write('<frameset frameborder="0" framespacing="0" border="0" rows="100%,*" noresize><frame id="fr" src="file.php" noresize></frameset>');
|
какой код нужно добавить в файл test.js чтоб после загрузки фрейма внизу страницы выводились все ссылки каторые присутствуют в фрейме. Пробовал так
for (var i = 0; i < document.links.length; i++) {
document.write(document.links[i]+'<br>');
}
|
работает только если вставить код в тело фрейма а мне оч нужно чтоб код был в файле test.js | |
|
|
|
|
|
|
|
для: Leonline
(23.05.2008 в 12:46)
| |
function f ()
{
var w = document.frames [0].document;
for (var s = [], j = 0; j < w.links.length; j++)
s [j] = w.links [j].cloneNode (1);
var BR1 = w.createElement ('br');
for (var j = 0; j < s.length; j++)
{
w.body.appendChild (s [j]);
w.body.appendChild (BR1.cloneNode (0));
}
}
document.write('<frameset onload="f()" frameborder="0" framespacing="0" border="0" rows="100%,*" noresize><frame id="fr" src="file1.php" noresize></frameset>');
|
* "Низ страницы" - это документ внутри фрейма с id="fr", ибо иного места для размещения ссылок на странице НЕТ.
** Полагаю, что вам всё-же нужно немного не то, что вы описали в качестве задачи.
Но это - ВАШИ проблемы: как задачу поставили - такое решение и получили :-)
Фантазировать за вас не буду. | |
|
|
|
|
|
|
|
для: PAT
(23.05.2008 в 14:21)
| | к сожалению не работает код, эксплорер показывает ошибку
Строка: 6
Символ: 1
Ошибка: Объект не поддерживает это свойство или метод
URL-адрес: http://localhost/test/test.html
**ВЫ правильно пологаете что мне нужно немного, мне нужен масив links из фрейма с id="fr" чтоб сделать редирект по первой ссылке из этого масива
чтото наверно вот так, но тоже не работает
var w = document.frames[0].document;
window.location = w.links[0];
|
| |
|
|
|
|
|
|
|
для: Leonline
(23.05.2008 в 15:44)
| | 1. Всё РАБОТАЕТ. И - если заменить document.frames на window.frames - не только в Эксплорере, а и ВЕЗДЕ.
Проверьте на примере. Индексный файл:
<html>
<head>
<script>
function f ()
{
var w = window.frames [0].document;
for (var s = [], j = 0; j < w.links.length; j++)
s [j] = w.links [j].cloneNode (1);
var BR1 = w.createElement ('br');
for (var j = 0; j < s.length; j++)
{
w.body.appendChild (s [j]);
w.body.appendChild (BR1.cloneNode (0));
}
}
document.write('<frameset onload="f()" frameborder="0" framespacing="0" border="0" rows="100%,*" noresize><frame id="fr" src="file1.htm" noresize></frameset>');
</script>
</head>
</html>
|
И файл file1.htm, лежащий в той же папке, что и индексный файл:
<html>
<body>
<a href="http://google.com/">link1</a><br>
<a href="http://yandex.ru/">link2</a>
<hr>
</body>
</html>
|
Если у вас ошибка, то два варианта:
а) Или вы намудрили с содержанием файла file.php (например, там у вас нет тега <BODY> вовсе).
б)Или же файл file.php - ЧУЖОЙ (т.е. не с того же домена, что и индексный файл). Эта проблема (с чужим файлом во фрейме) НЕ РЕШАЕТСЯ - в htm-формате можно обрабатывать только СВОИ файлы.
3. window.location = w.links[0]; - это БРЕД.
Надо так: window.location.href = w.links [0].href;
Или вовсе без присвоения: w.links [0].click (); | |
|
|
|
|
|
|
|
для: PAT
(23.05.2008 в 16:45)
| | Да файл который будет во фрейме с другого сервера подгружается, получается что не как не реализовать редирект по первой ссылке? Или может можно это по другому реализовать не через масив links? | |
|
|
|
|
|
|
|
для: Leonline
(23.05.2008 в 17:25)
| | Читать умеете?
Я же написал - в htm-формате работать с чужими документами нельзя.
С чужими документами можно работать в формате HTA - но только тогда, когда hta-файл будет размещен на вашем компьютере, а не на сервере.
Т.е. если вышеприведенный код индексного файла сохраните с расширением HTA и запустите его с вашего компьютера (и вместо file1.htm в SRC фрейма пропишете, например, http://google.com), то все сработает без проблем.
Если же разместите этот файл (с раширением HTA) на сервере, то браузер его открывать для работы не будет, а будет предлагать скачивать его на компьютер. | |
|
|
|