Гость
Форумы / Oracle APEX [игнор отключен] [закрыт для гостей] / Работа со слоями в IE... / 19 сообщений из 19, страница 1 из 1
25.08.2009, 15:00
    #36161915
kasik
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Работа со слоями в IE...
Сделал без использования jquery просто слои:
Код: plaintext
<div id="Ajax_Load" style="display:none;width: 300px; height: 60px; position: absolute; left: 430px; top: 600px; cursor; cursor: pointer;"><span style="font-weight:bold;font-size:20pt;color:blue;align-text:center;">..Загрузка ждите..</span></div> 
И сделал функцию:
Код: plaintext
1.
2.
3.
function show_hide_pb()
{
$x('Ajax_Load').style.display = $x('Ajax_Load').style.display == "none" ? "block" : "none";
}

Просто если на кнопку подцепить эту ф-ю то все земечательно работает и без задержек шустро показывает шустро убирает. Но при реальной ситуации не показывает нифига его просто возникает пауза и ничего не показывается и опять же в IE. В других браузерах все отлично работает. Почему так? И можно и это исправить?
...
Рейтинг: 0 / 0
25.08.2009, 15:22
    #36161995
kasik
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Работа со слоями в IE...
если сразу после показа слоя(show_hide_pb()) вставить алерт то слой будет видет пока висит окно с алертом - видимо он инициирует прорисовку слоя. Что за фигня вообще?
...
Рейтинг: 0 / 0
25.08.2009, 15:35
    #36162059
suPPLer
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Работа со слоями в IE...
kasik,

Какой именно IE?
...
Рейтинг: 0 / 0
25.08.2009, 16:36
    #36162224
kasik
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Работа со слоями в IE...
На ХР - 6.
...
Рейтинг: 0 / 0
25.08.2009, 16:38
    #36162230
kasik
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Работа со слоями в IE...
То есть дело то даже не в том что не успевает показаться а не успевает прорисоваться - в других браузерах значит другие правила прорисовки, поэтому в них все нормально, а вот тут вот фигня какая то...
...
Рейтинг: 0 / 0
25.08.2009, 16:43
    #36162243
kasik
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Работа со слоями в IE...
делал по один в один вот с этим тока в своей процедуре а не через проверку
Код: plaintext
p.readyState 
. а этот пример у меня в IE6 идет.
...
Рейтинг: 0 / 0
25.08.2009, 18:10
    #36162481
suPPLer
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Работа со слоями в IE...
kasikНа ХР - 6.

0. Про это чудо из чудес можно забыть. Хотя бы на седьмом пробуйте. А вообще, конечно, лучше убедить заказчика перейти на лису/оперу... Сделать, так сказать, первый шаг к freeware и opensource. :)
1. Примерчик бы создали на apex.oracle.com, можно было бы глянуть.
...
Рейтинг: 0 / 0
26.08.2009, 08:31
    #36163014
kasik
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Работа со слоями в IE...
может есть какая нибудь возможность дать команду слою на принудительную перерисовку? нет такого?
...
Рейтинг: 0 / 0
26.08.2009, 12:20
    #36163567
suPPLer
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Работа со слоями в IE...
kasik,

учитывая это и ещё пару тележек тем, могу предложить два варианта:

0. Вместо собственной функции использовать всё же функцию Бэкстрома, возможно, заменив html_ShowElement/html_HideElement на $x_Show/$x_Hide.
1. Использовать jQuery и методы объекта show()/hide().
...
Рейтинг: 0 / 0
26.08.2009, 14:40
    #36164109
_kasik_
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Работа со слоями в IE...
x_show пробовал никакой реакции вообще не было. и про "свою функцию" я имел ввиду просто функция обработки данных а у него она используется при какой то синхронной обработке. но если можно использовать там то можно испаользовать везде. Засада прям какая то...
...
Рейтинг: 0 / 0
26.08.2009, 16:38
    #36164460
kvad
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Работа со слоями в IE...
Может попробовать использовать setTimeout?
Видел в ряде случаев используют для ие такой хак:

Код: plaintext
1.
2.
3.
4.
5.
6.
show_hide_pb();
if (document.all) { // ie
  setTimeout(<ф-ция, которая что-нибудь долго-нудно выполняет>,  100 );
}else{ // other browsers
  <ф-ция, которая что-нибудь долго-нудно выполняет>();
}

Идея - отсрочить (для ие) выполнение <ф-ция, которая что-нибудь долго-нудно выполняет>, дав тем самым фору рендереру, чтобы тот смог сделать свои дела недоделанные (смену style.display).
...
Рейтинг: 0 / 0
26.08.2009, 18:03
    #36164664
kasik
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Работа со слоями в IE...
Попробуйте у себя вот так на любой таблице:
В HTML Header

Код: plaintext
1.
2.
<style type="text/css">
#Ajax_Load1{padding:5px;font-size:18px;width:200px;text-align:center;left: 48 %;top: 48 %;position:absolute;border:2px solid # 667 ;background-color:#FFF;}
</style>


Можете выбрать любой вариант:

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
function show_hide_pb()
{
//window.document.getElementById('Ajax_Load').style.display = window.document.getElementById('Ajax_Load').style.display == "none" ? "block" : "none";
//$x('Ajax_Load1').style.display = $x('Ajax_Load1').style.display == "none" ? "block" : "none";

if ($x('Ajax_Load1').style.display == "none")
{
$x_Show('Ajax_Load1')
//html_ShowElement('Ajax_Load1')
//$("#Ajax_Load1").show('fast');
} else
{
$x_Hide('Ajax_Load1')
//html_HideElement('Ajax_Load1')
//$("#Ajax_Load1").hide();
};

var old_a_rep = $a_report;
$a_report=function(G, F, D, C, A){
show_hide_pb(); 
old_a_rep(G, F, D, C, A);
show_hide_pb();

};

В хеадере отчета:
Код: plaintext
1.
<div id="Ajax_Load1" style="display:none;">..Загрузка ждите..<img src="/i/processing3.gif" />
</div>
[src][/src]

И указать поля отчета как сортабле. И при нажатии на ссылку в шапке для сортировки должно появляться сообщение. Везде показывается кроме ie6, ie7.

Отпишите пожалуйста о результатах!
...
Рейтинг: 0 / 0
26.08.2009, 18:19
    #36164709
kvad
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Работа со слоями в IE...
kasik,
нее, уж лучше как-нибудь сами... :)

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
var old_a_rep = $a_report;

var step2 = function() {
  old_a_rep(G, F, D, C, A);
  show_hide_pb();
}

$a_report=function(G, F, D, C, A){
  show_hide_pb(); 
  if (document.all) { // ie
    setTimeout(step2,  100 );
  }else{ // other browsers
    step2();
  }
}
...
Рейтинг: 0 / 0
27.08.2009, 09:33
    #36165346
kasik
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Работа со слоями в IE...
kvad,

в ф-и step2 от куда взять параметры (G, F, D, C, A) для old_a_rep, и в нее не передашь их, так как как я понял для использования в setTimeout ф-я должна быть без параметров.
так как вот так не захотело:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
var step2 = function(G, F, D, C, A) {
  old_a_rep(G, F, D, C, A);
  show_hide_pb();
}

$a_report=function(G, F, D, C, A){
  show_hide_pb(); 
  if (document.all) { // ie
    setTimeout(step2(G, F, D, C, A),  100 );
  }else{ // other browsers
    step2(G, F, D, C, A);
  }
}
...
Рейтинг: 0 / 0
27.08.2009, 11:08
    #36165572
kvad
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Работа со слоями в IE...
сорри, параметры я упустил.
тогда как-нибудь так:

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
var step2 = function(G, F, D, C, A) {
  old_a_rep(G, F, D, C, A);
  show_hide_pb();
}

$a_report=function(G, F, D, C, A){
  show_hide_pb(); 
  if (document.all) { // ie
    setTimeout(function(){step2(G, F, D, C, A)},  100 );
  }else{ // other browsers
    step2(G, F, D, C, A);
  }
}
...
Рейтинг: 0 / 0
27.08.2009, 13:39
    #36166119
kasik
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Работа со слоями в IE...
kvad,

Все заработало спасибо, хороший хак. конечно работает не совсем на все 100 - показывается только первый кадр гифа то есть анимации нет. но с больной овцы хоть шерсти клок.
...
Рейтинг: 0 / 0
27.08.2009, 16:02
    #36166514
kasik
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Работа со слоями в IE...
увеличил значение второго параметра и заработала анимация. но почемуто после этого перестает работать элемент Shuttle - не одна из его кнопок и двойной клик тоже. но не после каждого показа данного слоя. ну ладно с этим можно помириться просто каждый раз обновлять страницу или сабмитить не очень удобно!
...
Рейтинг: 0 / 0
27.08.2009, 17:47
    #36166769
kvad
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Работа со слоями в IE...
Shuttle во всех браузерах не работает?
Не улавливаю связи танцев вокруг $a_report с шаттлом.
firebug (в ie можно использовать http://www.my-debugbar.com/wiki/CompanionJS/HomePage ) ошибок не кажет?
...
Рейтинг: 0 / 0
28.08.2009, 10:45
    #36167487
kasik
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Работа со слоями в IE...
Ошибок кажись не показывает, а такая фигня не много в другом случаи(я же это окно использую не только в a_report). Но глюк с Shuttle происходит когда из диалогового окно(jquery) выходишь по эскэйб или просто его закрываешь без отработки(а по окею там происходит субмит поэтому глюк и пропадает), поэтому пришлось и просто при закрытии вызывать субмит при этом немного страдает производительность.
ну а так все таки задача решена хоть и не все идеально.
...
Рейтинг: 0 / 0
Форумы / Oracle APEX [игнор отключен] [закрыт для гостей] / Работа со слоями в IE... / 19 сообщений из 19, страница 1 из 1
Целевая тема:
Создать новую тему:
Автор:
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]