IMHO.WS

IMHO.WS (http://www.imho.ws/index.php)
-   Веб-программирование (http://www.imho.ws/forumdisplay.php?f=29)
-   -   Вопросы по Html (http://www.imho.ws/showthread.php?t=53780)

Sartam 14.03.2004 18:03

Вопросы по Html
 
Вот кусок кода из файла http://kkk.ru/aaa.htm -
<TD vAlign=top width="1%"><INPUT
onclick="OW2('aaaaa/b2.htm')" type=checkbox
value=" * "></TD>

При клике на чекбоксе на странице http://kkk.ru/aaa.htm выпадает попап, в кот. открывается файл http://kkk.ru/aaaaa/b2.htm

Что обозначает дескриптор OW2 и куда ведет линк при клике по этому чек-боксу,
если файл b2.htm находится по адресу:
http://kkk.ru/aaaaa/b2.htm? :confused: <--- Этот вопрос благополучно решен благодаря помощи hempsmoke (см. ниже)

Я сгрузил аaa.htm в IE (Save as) к себе на винт и обозвал его - аaa2.htm -
C:/DDD/mmm/aaa2.htm

Как перенаправить линк из файла C:/DDD/аaa2.htm на файл C:/DDD/mmm/b2.htm на винте? У меня пока не получается.

Доп. инфо:
В файлах http://kkk.ru/aaa.htm и. соответственно, C:/DDD/mmm/aaa2.htm есть скрипт:
<SCRIPT>
<!-- begin
brName = navigator.appName;
brVer = parseInt(navigator.appVersion);
if (brName == "Netscape" && brVer >= 3) VER = "N3";
else VER = "?";
var HW="";
function OW1(adr) {
if (brName == "Netscape") window.open(adr);
else window.open(adr,"ORD1");
}
function OW2(adr) {
HW = window. open(adr,'ORD2','scrollbars=1,resizable=0,width=210,height=250');
HW.focus();
}
// end -->
</SCRIPT>


Примечание: в этот пост 17 марта я добавил уточнения с учетом замечаний и возникших вопросов.
Сейчас меня интересует, что означает 'ORD2' в теле функции в скрипте.


hempsmoke 14.03.2004 18:15

OW2 - функция которая срабатывает при клике. обрабатывает переменную, содержащую этот адрес... скорее всего какой - нить попап..
Цитата:

Sartam:
mmm/b2.htm
исправь aaaa на bbbb ;)

Добавлено через 1 минуту:
т.е. aaaa на mmmm :)

is_absent 14.03.2004 18:33

Sartam
Цитата:

файл mmm/b2.htm на винте?
на локальном винте? или все-таки на сервере?

Sartam 15.03.2004 02:54

2 @_is_absent & hempsmoke

Конечно, файл mmm/b2.htm на локальном винте, в дир. DDD/mmm - DDD/mmm/b2.htm.
В дир. DDD также находится файл DDD/aaa2.htm - копия файла http://kkk.ru/aaa.htm на севере.
Я хочу, чтобы линк mmm/b2.htm из моего файла DDD/aaa2.htm
открывал файл DDD/mmm/b2.htm на моем винте.
И еще:
так что же все-таки обозначает дескриптор OW2 и куда ведет линк при клике по этому чек-боксу???
При клике на этом чекбоксе в интернете открывается файл http://kkk.ru/aaaaa/b2.htm.
При заменах (на моем винте) типа:
<TD vAlign=top width="1%"><INPUT
onclick="OW2('mmm/b2.htm')" type=checkbox
value=" * "></TD>

и
<TD vAlign=top width="1%"><INPUT
onclick="mmm/b2.htm" type=checkbox
value=" * "></TD>

выдает:
"Error on page"
Такой же месседж я получаю, если оставляю сгруженный файл без изменения,
хотя в этом случае этот линк (см. 1-й пост), вроде бы, должен открывать файл aaaaa/b2.htm на сервере :confused:
Икскьюз ми за такие подробности - просто хотелось избежать лишних вопросов и поскорее решить эту проблему :help:

joker99 15.03.2004 03:42

ты просто не спустил файл с javascript. поищи в коде DDD/aaa2.htm строку типа <script language="Javascript" src="file.js">. Этот file.js тебе и надо спустить и положить в нужную директорию

Sartam 15.03.2004 07:15

2 joker99
Спасибо за ответ.
В файле DDD/aaa2.htm есть только один скрипт:
<SCRIPT>
<!-- begin
brName = navigator.appName;
brVer = parseInt(navigator.appVersion);
if (brName == "Netscape" && brVer >= 3) VER = "N3";
else VER = "?";

var HW="";

function OW1(adr) {
if (brName == "Netscape") window.open(adr);
else window.open(adr,"ORD1");
}

function OW2(adr) {
HW = window.open(adr,'ORD2','scrollbars=1,resizable=0,width=210,height=250' );
HW.focus();
}
// end -->
</SCRIPT>

Но в нем нет строки типа:
<script language="Javascript" src="file.js">
Среди сгруженных с сервера файлов (IE6-->Save as) также нет файла типа file.js.
Зато в этом скрипте есть функция function OW2(adr).
Что она делает и как ее нужно изменить, я не знаю.
Плиз :help: :help:

rontommy 15.03.2004 08:39

Sartam
Ну теперь это просто. Функция window.open открывает новое окно с адресом adr.
Попробуй так :
Код:

<TD vAlign=top width="1%"><INPUT
onclick="OW2('file://DDD/mmm/b2.htm')" type=checkbox
value=" * "></TD>

Если я не ошибаюсь, по умолчанию в window.open выбирается http:// протокол, а у тебя файл локальный и нужен file://. Более знающие товарищи меня поправят.

Sartam 15.03.2004 11:28

2 rontommy
Цитата:

rontommy:
<TD vAlign=top width="1%"><INPUT
onclick="OW2('file://mmm/b2.htm')" type=checkbox
value=" * "></TD>
- Это теплее, чем раньше: открывается маленькое окошко для файла b2.htm, но... пустое,
и вылазит месседж:
\\mmm\b2.htm is not accessible. You me not permission to use this network resource. ...
Network path was not found
Хотя вызывающий файл (DDD/aaa2.htm ) находится в той же дир., что и сабдирект.,
содержащая вызываемый файл - DDD/mmm/b2.htm. :help:

rontommy 15.03.2004 11:51

Sartam
Я написал OW2('file://DDD/mmm/b2.htm') а не OW2('file://mmm/b2.htm').
Если тебе надо использовать жестко определенный адрес, копируешь полный адрес aaa2.htm из строки IE,
меняешь aaa2.htm на mmm/b2.htm и вставляешь как аргумент функции OW2.
Если же нужно то же самое динамически, надо воспользоваться window.location,
вырезать из него имя файла, заменить на новое и подставить как аргумент функции OW2.

is_absent 15.03.2004 11:52

Sartam
надо бы полный путь написать...
и три косые черты.. вместо двух. то есть file:///c:/dir/subrir1/subdir2/.../DDD/mmm/b2.htm

hempsmoke 15.03.2004 12:48

Цитата:

Sartam:
Это теплее, чем раньше: открывается маленькое окошко для файла b2.htm
хммм....
Цитата:

hempsmoke:
OW2 - функция которая срабатывает при клике. обрабатывает переменную, содержащую этот адрес... скорее всего какой - нить попап..

rontommy 15.03.2004 13:33

hempsmoke
Твое право первенства на решение никто не оспаривает :yees:

Sartam 15.03.2004 14:20

2 @_is_absent & hempsmoke & rontommy

Всем спасибо за старания, но... решение пока не найдено :blin:
И file:// и file:/// а также абсолютный путь дают ошибку.
Наилучший результат дал вариант file://mmm/b2.htm. Здесь хотя бы открывается маленькое окошко,
но... за файлом b2.htm лезет зачем-то в сеть.
Что касается абсолютного пути, то даже, если бы получилось, меня это не очень бы устроило - я не хочу
привязывать весь пакет к абсолютному месту.
В то же время относительный путь в живом файле на сервере (см. в начале) работает. Там штук 50 таких блоков и при клике на любом из чек-боксов выпадает мелкий попап, как и предполагал hempsmoke.
Так что я все там же :crucify: Прошу не покидать меня :help: :help: :help:

Я на несколько часов должен отлучиться - иксьюз ми.

is_absent 15.03.2004 15:10

Sartam
В сеть он лезет абсолютно правильно :) поскольку браузер считает, что mmm -- это имя машины с сети.
а чтобы не сильно привязываться к локальному каталогу заведи в js переменную path и запиши в нее путь к той папочке, куда тебе нужно ссылаться.
function OW2(adr) {
var path = 'C:/temp/';
HW = window. open('file:///' + path + adr,'ORD2','scrollbars=1,resizable=0,width=21
0,height=250');
HW.focus();
}

и вызывать эту функцию как OW2('mmm/b2.htm');
должно работать

Sartam 16.03.2004 08:13

2 @_is_absent
Я попробовал сделать, как ты написал - изменил функцию:
function OW2(adr) {
var path = 'C:/temp/';
HW = window.open('file:///' + path + adr,'ORD2','scrollbars=1,resizable=0,width=210,height=250');
HW.focus();

Эта функция находится внутри скрипта, кот. в свою очередь находится внутри файла DDD/aaa2.htm (см. мои первые ответы тебе и joker99).
Но... результат тот же - Error on page. :(

is_absent 16.03.2004 09:08

Sartam
а ты ошибку читал? скорее всего access denied... надо с правами чего-то делать. или искать другой выход

Добавлено через 2 минуты:
если запускать такой же скрипт локально с машины, то все работает. если же ты будешь его же запускать c сервера (пусть это даже таже самая машина) будет валиться ошибка "Access denied"

hempsmoke 16.03.2004 21:45

rontommy
:) просто я думал это всё из-за невнимательного прочтения...

Добавлено через 19 минут:
забыл: ;)

в html коде в документе нигде не встречается тэг <base href="">?

Sartam 17.03.2004 06:49

2 ALL, кто помогал и кому это интересно

1. Очень долго не мог пробиться на этот форум, чтобы ответить
2. Совсем начал терять надежду найти решение проблемы
3. В сообщении об ошибке не было access denied.
В строке состояния (в самом низу окна IE) при клике на чекбоксе появляется Error on page и маленький желтый треугольник с восклицательным
знаком и остаются там пока стрелка мыши остается на чекбоксе. Если сдвинуть стрелку с чекбокса появляется Done (треугольник ! остается).
4. В html коде в документе нигде не встречается слово base. Там также нет абсолютных линков на другие страницы сайта (которые меня интересуют) - все относительные.
5. Кстати - что обозначает 'ORD2' в теле функции (см. выше)?
6. Появился проблеск и, пожалуй, РЕШЕНИЕ (последнее добавил позже):
При вызове из интернета файла http://kkk.ru/aaa.htm в Temporary Internet Files создается файл aaa[1].htm, имеющий размер примерно 70% от файла aaa.htm и содержащий все относительные линки. При открытии его в IE на месте, где он лежит, относительные линки пытаются вызывают страницы сайта, преобразуясь в линки типа -
file:///C:\Documents and Settings\S_A\Local Settings\Temporary Internet Files\Content.IE5\WX49QNK5\kkk.ru\aaa.htm
При клике на чекбоксе открывается небольшой попап с заголовком - Cannot find server...
Переношу файл aaa[1].htm в мою рабочую дир. C:\DDD\mmm. При клике на чекбоксе создается и срабатывает локальный линк: file:///C:\DDD\mmm\aaaaa\b2.htm - И...
... в попап окошке открывается нужный файл - C:\DDD\mmm\aaaaa/b2.htm :dance: :dance: :dance:

7. Сравнением файлов aaa[1].htm и aaa2.htm займусь чуть позже, когда появится время.

ВСЕМ СПАСИБО!!! Ответы (комментарии) можно (и желательно) добавлять.

rontommy 17.03.2004 08:42

Цитата:

Sartam:
Кстати - что обозначает 'ORD2' в теле функции
Это имя нового окна, может быть использовано как таргет в A и FORM (<form target="ORD2">).
Если окно с таким именем уже существует, то оно и будет использовано, а новое окно не открывается и все последующие параметры (высота, ширина и т.д.) игнорируются.

Sartam 17.03.2004 09:27

2 rontommy

Спасибо! Правда, мне не совсем ясно...
Сразу после скрипта стоит строка:
<FORM METHOD=GET>
а имя попап-окна, по-моему, берется из тэга title файла вызываемого файла.

Ghost 17.03.2004 09:33

Sartam
Цитата:

имя попап-окна, по-моему, берется из тэга title файла вызываемого файла.
Тэк TITLE содержит заголовок окна. Имя окна - это несколько другое... Это - имя объекта "окно".
Цитата:

Сразу после скрипта стоит строка: <FORM METHOD=GET>
Это тэг начала формы.

Sartam 17.03.2004 10:09

2 Ghost

Цитата:

Тэк TITLE содержит заголовок окна. Имя окна - это несколько другое... Это - имя объекта "окно".
Да, я имел ввиду заголовок окна, но считал, что имя окна - это то же самое. :(
Так для чего оно нужно и какую нагрузку несет? - Извини меня, я действательно темный в HTML и, особенно, в JAVA.

Ghost 17.03.2004 10:30

Sartam
Цитата:

Так для чего оно нужно и какую нагрузку несет? - Извини меня, я действательно темный в HTML и, особенно, в JAVA.
Нагрузка - самая обычная: возможность обращения к объекту по его имени. В принципе, для большинства попап-окон имя особенной роли и не играет, но функция их создания содержит этот обязательный параметр... Так что, приходится писать.
Можешь попробовать такую штуку: сделать на странице две ссылки для создания одноименных попап-окон, но с разным содержимым. Щелчок по первой приведет к появлению окна и загрузки в него одной страницы, щелчок по второй - загрузку в уже имеющееся попап-окно другой страницы.

Добавлено через 5 минут:
Вот пример: (создай сперва два любых файла с именами 1.html и 2.html; создай файл popup.html с кодом, приведенным ниже, и запусти его; note: все файлы должны находиться в одной папке):
Код:

<HTML>
<BODY>
<A HREF="#" onClick="javascript:window.open('1.html', 'ORD1');">1st Popup</A><BR>
<A HREF="#" onClick="javascript:window.open('2.html', 'ORD1');">2nd Popup</A><BR>
</BODY>
</HTML>


rontommy 17.03.2004 10:36

Ghost
Молодец, хорошо объсняешь, только уточню, что 'java script' есть одно слово, без пробела - 'javascript'.

Ghost 17.03.2004 10:42

rontommy
Цитата:

Молодец, хорошо объсняешь, только уточню, что 'java script' есть одно слово, без пробела - 'javascript'.
Я это знаю. Но скрипт форума их почему-то сам разделил. :confused: Я попробовал отредактировать пост, но в форме редактирования эти слова не были разделены. :confused: Видимо, это такая фича форума...

rontommy 17.03.2004 11:12

Цитата:

Ghost:
Я это знаю
Не сомневаюсь. :yees:
Уточнил для тех кто может не знать или не обратить внимания и скопировать мышкой к себе в код.
Впрочем, и без 'javascript:' будет работать.

Sartam 17.03.2004 13:24

2 ALL

Спасибо, ребята!
Еще немного и вы вырастите нового гуру в моем лице. :winkgrin:

Ghost 17.03.2004 13:29

Sartam
Цитата:

Еще немного и вы вырастите нового гуру в моем лице.
Без проблем.
Кстати, залезь на WebHolm.ru - Холм Web-мастера. Там не очень много статей по HTML и JS, но они очень просты и доступны для понимания.
Удачи.

Sartam 17.03.2004 14:34

2 Ghost

Спасибо за линк! Будем подковываться.


Часовой пояс GMT +4, время: 11:26.

Powered by vBulletin® Version 3.8.5
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.