Форум: "Сети";
Текущий архив: 2003.07.14;
Скачать: [xml.tar.bz2];
ВнизВопрос по 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;
Скачать: [xml.tar.bz2];
Память: 0.48 MB
Время: 0.008 c