Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   скрипт во фрейме (https://javascript.ru/forum/misc/3718-skript-vo-frejjme.html)

ovetskiy 18.05.2009 09:38

скрипт во фрейме
 
пож
помогите найти в чем ошибка
есть скрипт

function s(a){

document.getElementById('poisk').value= a.innerHTML;

}

в отдельном файле он работает, но если файл размещен во фрейме работать не хочет
СПАСИБО

evgen28 18.05.2009 11:30

а если так
function s(a){

parent.document.getElementById('poisk').value= a.innerHTML;

}
?

ovetskiy 18.05.2009 19:24

большое спасибо
сей проверю

ovetskiy 18.05.2009 19:59

к сожалению не фурычит на сайте
на локалке работает
Спасибо

x-yuri 18.05.2009 22:22

1) это iframe? Или страница на фреймы разбита?
2) если фреймы, то где находится функция, а где элемент?
3) домен один и тот же?

ovetskiy 18.05.2009 22:48

страница разбита на фреймы
в том то и дело что и функция и элемент находятся в одном фрейме
а работать не хочет

http://www.ovetskiy.narod.ru/11560/frame.htm

СПАСИБО что обратили на меня внимание

x-yuri 18.05.2009 22:58

Цитата:

2) если фреймы, то где находится функция, а где элемент?
какая структура фреймов? В каком фрейме функция, в каком элемент? Названия фреймов?
Цитата:

3) домен один и тот же?
хотя скорее всего один

evgen28 19.05.2009 13:04

можно попробовать так
function s(a){
window.parent.document.getElementById('poisk').val ue= a.innerHTML;
}

как я понял проблему-она в следующем:
есть страничка, в которой есть фрейм, внутри фрейма подключается файл js,так?Если да, то, видимо, фрейм является для подключаемого файла родительским окном, а основная страничка является родительской для фрейма, может так поможет:
function s(a){
window.parent.window.parent.document.getElementByI d('poisk').value= a.innerHTML;
}
:)
если че сморозил, пусть меня поправят знатоки js.

x-yuri 19.05.2009 15:15

Цитата:

внутри фрейма подключается файл js,так?Если да, то, видимо, фрейм является для подключаемого файла родительским окном
сморозил

p.s. если честно, меня удивляет, что твой первый вариант у ТС работает локально, потому что он для iframe'ов

ovetskiy 19.05.2009 17:21

огромное спасибо
но простите меня если я Вас еще помучаю
очень не хочется связываться с фреймами
выношу часть кода который повторяется на всех страницах
в отдельный файл avtori.js:

document.write("<Center>");
document.write('<img src="logo.gif" height="75">');<br>
document.write('<a class="spec2" href="http://www.woscripts.com/">>Стартовая</a>');
document.write('<a href="some menu link 3">Пункт меню 3</a>');
document.write('<a href="some menu link 4">Пункт меню 4</a>');
document.write("</Center>");

function s(a){

document.getElementById('poisk').value= a.innerHTML;

}



на самой странице вставляю
<head>
.....................................
<script type="text/javascript" src="avtori.js"></script>
</head>
и почему-то эта конструкция на работает ни в IE ни в FF

если найдете свободную минутку
укажите дилетанту, где ошибка
СПАСИБО большое

x-yuri 19.05.2009 17:34

Цитата:

очень не хочется связываться с фреймами
а они обычно не нужны

давай начнем с того, что не будем document.write в head вставлять

x-yuri 19.05.2009 17:35

и вообще document.write лучше заменить на
window.onload = function() {
    document.getElementById('el_id').innerHTML = '...';
}

evgen28 19.05.2009 17:43

ну это уж совсем по простому Вы хоттите, да еще и с ашшыпками :)!
ну если совсем по простому, я бы сделал так:
сама страница:
<head>
...
<script type="text/javascript" src="avtori.js"></script>
</head>
<body>
...
<div id=''menu" />
...
</body>

в скрипте avtori.js нужно написать
document.getElementById('menu').innerHTML='<Center >' +
'<img src="logo.gif" height="75"><br>' +
'<a class="spec2" href="http://www.woscripts.com/">Стартовая</a>'+
'<a href="some menu link 3">Пункт меню 3</a>'+
'<a href="some menu link 4">Пункт меню 4</a>'+
'</Center>';

function s(a){

document.getElementById('poisk').value= a.innerHTML;

}

evgen28 19.05.2009 17:44

а че на народе еще нет никакой поддержки пхп?

x-yuri 19.05.2009 18:25

evgen28, к моменту запуска скрипта '#menu' еще не будет существовать

upd: а где собственно элемент с id poisk?

evgen28 20.05.2009 09:13

x-yuri,
а можно js вставить в конец перед закрывающим </body>
:)

evgen28 20.05.2009 12:11

а лучше использовать хостинг с пхп и не изголяться :)

evgen28 20.05.2009 12:17

и сделать что-то типа
<?php
include 'header.php'; //хранить здесь верхнюю часть страницы
include 'menu.php'; //хранить здесь Ваше меню
include 'body.php'; //хранить здесь остальную часть страницы
include 'footer.php'; //хранить здесь нижнюю часть страницы
?>
а если уж совсем хочется отделять логику от представления то можно воспользоваться шаблонизатором(например SMARTY - smarty.php.net)
:)
на одном html(даже с всеми нами любимым javascript-Ом) далеко не уедешь :)

ovetskiy 20.05.2009 23:32

большое СПАСИБО


Часовой пояс GMT +3, время: 10:10.