|
|
|
|
|
для: CNT
(19.11.2007 в 00:25)
| | CNT
> И в данном случае этот атрибут совсем не нужен
Согласен, не нужен совершенно. Извините, не разобрался в проблеме. | |
|
|
|
|
|
|
|
для: CNT
(16.11.2007 в 19:43)
| | Помогло, большое спасибо! | |
|
|
|
|
|
|
|
для: RMW
(18.11.2007 в 18:12)
| | Это называется - "слышал звон".
Вы бы проверили сначала ваш совет, и потом, уверен, желание здесь "пердупердять" у вас не возникло бы.
Да, аттрибут APPLICATION у фреймов/ифреймов иногда используется - http://msdn2.microsoft.com/en-us/library/ms536474.aspx
Но - совсем для иного. И в данном случае этот атрибут совсем не нужен, ибо не поможет. | |
|
|
|
|
|
|
|
для: CNT
(16.11.2007 в 19:43)
| | Нужно в теге iframe добавить атрибут application="yes" и настройки эксплорера не трогать.
Пердупердю: код загруженный в ифрейм с application="yes" может делать с вашей машиной
что хочет. | |
|
|
|
|
|
|
|
для: DmitryBerkut
(16.11.2007 в 18:54)
| | Мой скрипт позволяет - только что проверил.
Это настройки вашего MSIE (Эксплорера) не позволяют (а HTA-файлы работают на базе настроек MSIE) .
1. Откройте браузер Эксплорер
2. Зайдите в "Сервис-->Свойства обозревателя"
3. Откройте там вкладку "Конфиденциальность"
4. В верхнее поле ("Адрес веб-узла") пропишите http://www.kinopoisk.ru/
5. Нажмите кнопку "Разрешить" справа от верхнего поля
6. В нижнем поле появится строка "kinopoisk.ru -- Всегда разрешать"
7. Нажмите "ОК" и ещё раз "ОК" (закрыв панель настроек)
8. Закройте браузер Эксплорер
Теперь можете сколько угодно раз запускать файл test.hta и авторизоваться на здоровье.
Соответственно, для других узлов операции 1...8 необходимо будет повторить. | |
|
|
|
|
|
|
|
для: CNT
(16.11.2007 в 03:48)
| | Не позволяет авторизацию Ваш скрипт на:
http://www.kinopoisk.ru | |
|
|
|
|
|
|
|
для: DmitryBerkut
(15.11.2007 в 18:55)
| | Вы читать не умеете?
Я же написал: "Будете внутри ифрейма чего-то нажимать в процессе работы программы - тоже переклинит "
Вы, когда авторизуетесь, что-то ведь внутри ифрейма пишете/жмёте?
Если вас предупредили - "туда не ходи, снег башка попадет" - то почему вы удивляетесь, что "он все время при попытке авторизироваться выдает "Работа программы завершена. Сохранить результаты на жесткий диск?" ???"
------------------------------
"А можно доделать скрипт таким образом, чтобы он предусматривала авторизацию на сайте?"
Разумеется, можно, ибо все же очевидно и примитивно.
Неужели вы вовсе не разбираетесь в JS?
В общем, в последний раз - удовлетворять все ваши прихоти мне лень
<html><head>
<meta http-equiv="content-type" content="text/html; charset=win-1251">
<script>
var T, N, R = 1;
function f () {document.all._ifr.src = document.all._url.value}
function f2 ()
{
if (R == 1)
{
T = document.all._tim.value * 1000;
N = document.all._num.value * 1;
document.all._txt.value = '';
}
if (R > N)
{
if (confirm ('Работа завершена!\nСохранить результаты на жесткий диск?'))
{
var fso = new ActiveXObject ('Scripting.FileSystemObject'),
f = fso.OpenTextFile ('c:\\cnt.txt', 2, true);
f.Write (document.all._txt.value);
f.Close ();
alert ('Смотрите файл C:\\cnt.txt');
}
return;
}
for (var L = document.frames._ifr.document.links, o = [], j = 0; j < L.length; j++)
o [j] = (j + 1) + '. ' + ((L [j].innerText) ? L [j].innerText : '[текста в ссылке нет]');
document.all._txt.value += R++ + '-е сохранение (всего ссылок - ' + L.length + '):\r\n';
document.all._txt.value += o.join ('\r\n') + '\r\n-------\r\n\r\n';
setTimeout (f2, T);
}
</script></head>
<body bgcolor="#cecece" style="margin: 0">
<table bgcolor="yellow" cellpadding="8" cellspacing="0" width="100%">
<tr><td width="20%">Куда идём авторизоваться:
<td width="40%"><input id="_url" style="width: 100%" value="http://" onclick="this.value=''">
<th width="20%"><input type="button" style="width: 40%" value="GO" onclick="f ()">
</table>
<br><br><iframe align="center" id="_ifr" style="width: 80%; height: 10%"></iframe><br><br>
<table bgcolor="aqua" cellpadding="8" cellspacing="0" width="100%">
<tr><th colspan="2">После ручной авторизации и после <b style="color: red">ПОЛНОЙ</b> загрузки нужной страницы заполняем
<tr><td>Период:
<td><input id="_tim" style="width: 100%" value="(целое количество секунд от 1 до разумного)" onclick="this.value=''">
<tr><td width="10">Сколько раз сохранять:
<td><input id="_num" style="width: 100%" value="(целое количество раз от 1 до разумного)" onclick="this.value=''">
<tr><td colspan="2" bgcolor="fuchsia"><table cellpadding="5" width="100%">
<tr><th width="50%"><input type="button" style="width: 30%" value="START" onclick="f2 ()">
<th><input type="button" style="width: 30%" value="REFRESH" onclick="document.location.reload ()">
</table></table><br><br>
<table bgcolor="aqua" cellpadding="8" cellspacing="0" width="100%">
<tr><td><textarea id="_txt" style="width: 100%" rows="10">(результат работы)</textarea>
</table><br><br>
<table align="center" width="80%" border="1" cellspacing="0" cellpadding="20" bgcolor="white">
<tr><td><ol>Защиты "от дурака" не делал:
<li>Введете, например, в поле "Период" вместо цифр бяку (или ничего не введете) - программу будет клинить.
<li>Зададите 10000 раз "сохранять" - программа "заснет" (или стек переполнится)
<li>Будете внутри ифрейма чего-то нажимать <b style="color: red">после нажатия кнопки START</b> в процессе работы программы - тоже переклинит
</ol></table><br><br>
</body></html>
| Разумеется, дожидаться визуально ПОЛНОЙ загрузки - это "не комильфо" - но я не знаю, как именно у вас проходит авторизация (кою тоже можно автоматизировать), потому написал в самом простом виде. | |
|
|
|
|
|
|
|
для: CNT
(15.11.2007 в 16:53)
| | Круто спасибо. А можно доделать скрипт таким образом, чтобы он предусматривала авторизацию на сайте. Потому что он все время при попытке авторизироваться выдает "Работа программы завершена. Сохранить результаты на жесткий диск?" ??? | |
|
|
|
|
|
|
|
для: DmitryBerkut
(15.11.2007 в 15:30)
| | сохраните файл на компьютере с именем test.hta (запускайте двойным кликом мыши):
<html><head>
<meta http-equiv="content-type" content="text/html; charset=win-1251">
<script>
var T, N, R = 1;
function f ()
{
document.all._ifr.src = document.all._url.value;
T = document.all._tim.value * 1000;
N = document.all._num.value * 1;
document.all._txt.value = '';
}
function f2 ()
{
if (R > N)
{
if (confirm ('Работа завершена!\nСохранить результаты на жесткий диск?'))
{
var fso = new ActiveXObject ('Scripting.FileSystemObject'),
f = fso.OpenTextFile ('c:\\cnt.txt', 2, true);
f.Write (document.all._txt.value);
f.Close ();
alert ('Смотрите файл C:\\cnt.txt');
}
return;
}
for (var L = document.frames._ifr.document.links, o = [], j = 0; j < L.length; j++)
o [j] = (j + 1) + '. ' + ((L [j].innerText) ? L [j].innerText : '[текста в ссылке нет]');
document.all._txt.value += R++ + '-е сохранение (всего ссылок - ' + L.length + '):\r\n';
document.all._txt.value += o.join ('\r\n') + '\r\n-------\r\n\r\n';
setTimeout (f2, T);
}
onload = function () {document.all._ifr.attachEvent ('onload', f2)}
</script></head>
<body bgcolor="#cecece" style="margin: 0">
<table bgcolor="teal" cellpadding="8" cellspacing="0" width="100%">
<tr><td>URL страницы в сети:
<td><input id="_url" style="width: 100%" value="http://" onclick="this.value=''">
<tr><td>Период:
<td><input id="_tim" style="width: 100%" value="(целое количество секунд от 1 до разумного)" onclick="this.value=''">
<tr><td width="10">Сколько раз сохранять:
<td><input id="_num" style="width: 100%" value="(целое количество раз от 1 до разумного)" onclick="this.value=''">
<tr><td colspan="2" bgcolor="fuchsia"><table cellpadding="5" width="100%">
<tr><th width="50%"><input type="button" style="width: 30%" value="START" onclick="f ()">
<th><input type="button" style="width: 30%" value="REFRESH" onclick="document.location.reload ()">
</table></table><br><br>
<iframe align="center" id="_ifr" style="width: 80%; height: 10%"></iframe><br><br>
<table bgcolor="aqua" cellpadding="8" cellspacing="0" width="100%">
<tr><td><textarea id="_txt" style="width: 100%" rows="10">(результат работы)</textarea>
</table><br><br>
<table align="center" width="80%" border="1" cellspacing="0" cellpadding="20" bgcolor="white">
<tr><td><ol>Защиты "от дурака" не делал:
<li>Введете, например, в поле "Период" вместо цифр бяку (или ничего не введете) - программу будет клинить.
<li>Зададите 10000 раз "сохранять" - программа "заснет" (или стек переполнится)
<li>Будете внутри ифрейма чего-то нажимать в процессе работы программы - тоже переклинит
</ol></table><br><br>
</body></html>
|
| |
|
|
|
|
|
|
|
для: DmitryBerkut
(15.11.2007 в 14:06)
| | Конечно, сможет, причем без проблем.
Авторизация - это ввод логина/пароля и получение идентификатора сессии от "тамошнего" php-скрипта (или ещё на каком-то серверном языке). Так как вызываемый "чужой" файл (как яуже писал ранее) не будет даже догадываться, что его запустили не прямо в браузере, а в окне IFRAME, то и вести он себя будет, как в обычном окне браузера. | |
|
|
|
|