Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2003.07.14;
Скачать: CL | DM;

Вниз

Вопрос по CGI: как узнать текущие URL?   Найти похожие ветки 

 
Novichek ©   (2003-04-24 19:05) [0]

при отправке запроса на cgi-скрипт со страницы, содержащей фреймы, можно ли узнать какие URL загружены в данный момент во все эти самые фреймы?


 
Novichek ©   (2003-04-26 13:50) [1]

?


 
Карелин Артем ©   (2003-04-26 14:05) [2]

Если только каким-нибудь извращенным жаваскриптом формировать формировать запрос к скрипту, в котором одним из параметров будет УРЛ.
Хотя по-моему это фантастика :-)


 
Palladin ©   (2003-04-27 08:38) [3]

да не... не фантастика...
цикл по top.frames
формирование формы и submit в CGI


 
Novichek ©   (2003-05-06 14:20) [4]

Palladin
а можно, пожалуйста, по-подробнее?


 
Palladin ©   (2003-05-06 15:14) [5]

хм


<form id="_hiddenform" action="твой cgi+твой путь в CGI" method="post">
<input type="hidden" name="_ListOfURLs" id="_idListOfURLs">
</form>

<script language="javascript>
var s=new String();
for (i=0;i<top.frames.length;i++) {
s+=" "+top.frames[i].location.href;};
document.all._idListOfURLs=s;
document.all._hiddenform.Submit();
</script>


этот кусок может лежать в любом месте html твоего фрейма...
твой CGI получает в Request.ContentFields.Values["_ListOfURLs"] строку с кучей URLов разделенных пробелом, не бойся пробелы в самих URLах не встретятся, так что распарсить строку не представляет проблеммы при помощи TStringList.Delimiter и TStringList.DelimitedText
после обработки данных ты должен установить Response.StatusCode:=204


 
Palladin ©   (2003-05-06 15:16) [6]

упс
маленький не точность
вместо
document.all._idListOfURLs=s;
нужно
document.all._idListOfURLs.value=s;


 
Novichek ©   (2003-05-06 15:42) [7]

неработает,
он мне _ListOfURLs пустую постоянно вовращает


 
Palladin ©   (2003-05-06 15:49) [8]

1 уверен ли ты что кусок который я привел точно находится в дочернем фрейме, и вообще это точно страница построеная с frameset?
2 приведи здесь кусок который ты вставляешь
3 приведи здесь кусок где ты получаешь


 
Novichek ©   (2003-05-06 15:56) [9]

1)
<FRAMESET FRAMEBORDER="0" FRAMESPACING="0" BORDER="0" rows="50,*">
<FRAME SRC="1.html">
<FRAME SRC="2.html">
</FRAMESET>

2)облегченный вариант, без отправки данных

<html>
<input type=submit onclick=url()>

<script language="javascript">
function url(){
var s=new String();
for (i=0;i>top.frames.length;i++)
{s+=" "+top.frames[i].location.href;};
alert(s)
}
</script>

</html>

3) при нажатии на кнопку переменная "s" равна пустой строке.


 
Palladin ©   (2003-05-06 15:59) [10]

cделай так


<input type="text" id="_log1">
<script language="javascript">
function url(){
var s=new String();
for (i=0;i>top.frames.length;i++)
{s+=" "+top.frames[i].location.href;};
document.all._log1.value=s;
}
</script>


не верю я этому alert


 
Novichek ©   (2003-05-06 16:27) [11]

что-то мы наверное не так делаем, т.к. всеравно "s" возвращает пустую строчку.

а из CGI-скрипта эту информацию о фреймах никак нельзы вытащить?


 
Palladin ©   (2003-05-06 20:48) [12]


> Novichek © (06.05.03 16:27)

не мы, а ты...
у меня все нормально


 
Palladin ©   (2003-05-06 20:50) [13]


> а из CGI-скрипта эту информацию о фреймах никак нельзы вытащить?

CGI (не скрипт между прочим) вообще никакого отношения к браузеру не имеет...

кстати... а какой у тебя браузер?


 
Novichek ©   (2003-05-07 13:35) [14]

explorer 6


 
Palladin ©   (2003-05-07 13:56) [15]

:) а JavaScript у тебя Enabled?
если Enabled, то проблем быть не должно...
привожу полностью то, что работает...

фреймы
Test12.htm

<html>

<head>
<title>New Page 2</title>
<meta name="GENERATOR" content="Microsoft FrontPage 4.0">
<meta name="ProgId" content="FrontPage.Editor.Document">
</head>

<frameset rows="64,*">
<frame name="banner" scrolling="no" noresize target="contents" src="test 1.htm">
<frameset cols="150,*">
<frame name="contents" target="main" src="test2.htm">
<frame name="main" src="test11.htm">
</frameset>
<noframes>
<body>

<p>This page uses frames, but your browser doesn"t support them.</p>

</body>
</noframes>
</frameset>

</html>


Test 1.htm
Test2.htm
пустые <html><body></body></html>

Test11.htm
<html>
<body>
<input type="text" value="ff" id="_kar">
<input type="text" value="ff" id="_kar2">
<script language="javascript">
var s=new String();
for (i=0;i<top.frames.length;i++) {
s+=top.frames[i].location.href;
};
document.all._kar.value=s;
document.all._kar2.value=top.frames.length;
</script>
</body>
</html>



Страницы: 1 вся ветка

Текущий архив: 2003.07.14;
Скачать: CL | DM;

Наверх




Память: 0.5 MB
Время: 0.017 c
9-44529
prokopyi
2003-01-21 09:24
2003.07.14
Текстура


14-44871
FormCoord
2003-06-27 13:34
2003.07.14
Координаты компонета относительно Owner


14-44803
stone
2003-06-24 11:28
2003.07.14
---|Ветка была без названия|---


4-44948
Alex_x
2003-05-14 09:38
2003.07.14
API функции для определения конфигурации компютера


1-44709
Новенький
2003-07-01 03:57
2003.07.14
Label