Добрый вечер. Помогите, пожалуйста решить следующую проблему. Для наглядности, сразу код: index.html: PHP: <script type="text/javascript">var a='переменная1';</script> <script type="text/javascript">var b='переменная2';</script> <script type="text/javascript" src="iframe.js"></script> iframe.js: PHP: document.write('<frameset rows="100%,*" border="0" frameborder="0" framespacing="0" framecolor="#000000"><frame src="page.html"><frame src=""><noframes>'); page.html: PHP: <script>document.write(parent.a);</script> <script>document.write(parent.b);</script> так же на page.html имеется несколько попаданий обеих переменных в onclick. Собственно проблема: переменные попадают на страницу page.html только в случае захода из Яндекса или Рамблера (т.е. с их реферами), во всех остальных случаях не выдаётся ничего, либо выдаётся undefined (в зависимости от браузера). С чем это может быть связано?
PHP: <a href="#" onclick="location.href='http://site.ru/script.php?word='+parent.a+''">анкор</a> Закрывающийся фреймсэт есть, я здесь не до конца скопировала. Переменные никак не зависят от реферера. весь js приведён в первом сообщении. Я не увидела никакой зависимости от браузера - у меня работает во всех браузерах, в т.ч. и хроме, вся загвоздка только в переходе их поисковой системы.
ff, opera, chrome: index.html, не должна содержать <body></body> (по спецификации): HTML: <html> <head> </head> <script type="text/javascript">var a='переменная1';</script> <script type="text/javascript">var b='переменная2';</script> <script type="text/javascript" src="iframe.js"></script> </html> page.html HTML: <html> <head> </head> <body> <script>document.write(parent.a);</script> <script>document.write(parent.b);</script> </body> </html> iframe.js HTML: document.write('<frameset rows="100%,*" border="0" frameborder="0" framespacing="0" framecolor="#000000"><frame src="page.html"><frame src=""></frameset><noframes>Нету фреймов</noframes>'); Ну и на всякий случай надо делать валидную вёрстку, а не надеятся, что браузер сам додумает как лучше закрыть тег (это я про iframe.js, который у тебя). У меня на дебиане локально хром ругался, что обращение из фрейма происходит к другому домену (хотя всё было локально и в одной папке и политики безопасности не нарушало), видимо такой глюк просто. По идее это должно нормально работать. По идее я описал почему, если ты локально тестил. UPDATE: HTML: <a href="#" onclick="location.href='http://site.ru/script.php?word='+parent.a+''">анкор</a> Приведи как это полностью на страницу вставляется, а то у меня есть мнение, что ты неправильно это делаешь.
Melfis, попробовала сейчас ваш код - ничего не изменилось, при заходе из гугла переменная не появляется на странице. Локально, на сколько я помню (сейчас нет возможности протестировать), не работало вообще. На данный момент всё тестируется на домене. А онклик вставляется так: PHP: <a href="#" onclick="location.href='http://'+'domain'+'.'+'ru'+'/'+'script.php?'+'word='+parent.b+'">анкор</a>
Не совсем понимаю, точнее совсем не понимаю связи перехода с реферером и передачи переменной, но все же, попробуйте не парент, а window.parent.
Сейчас попробывала протестировать на другом домене и всё почему-то заработало. Ребят, спасибо вам большое за желание помочь и извините что взболомутила воду.