Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 17.01.2011, 18:55
Новичок на форуме
Отправить личное сообщение для Yamasa Посмотреть профиль Найти все сообщения от Yamasa
 
Регистрация: 17.01.2011
Сообщений: 3

Код работает корректно во всех браузерах кроме IE8
Данный код работает во всех браузерах, но не хочет работать в IE8. Где ошибка, что я не учел ? Спасибо.

<script language="javascript">
function showProcess(id){
 	document.getElementById('Description').innerHTML = document.getElementById(id).innerHTML;
	document.getElementById('Description').style.border = 'dashed #d5d5d5 1px';
	document.getElementById('Description').style.backgroundColor = '#f9f9f9';
	document.getElementById('Description').style.padding = '10px 15px 10px 15px';
	document.getElementById('Description').style.lineHeight = '1.4';
	document.getElementById('Process').style.position = 'absolute';
	document.getElementById('Process').style.overflow = 'hidden';
	document.getElementById('Process').style.fontSize = '12px';
	document.getElementById('Process').style.textAlign = 'justify';
	document.getElementById('Process').style.background = '#fff';
	document.getElementById('Process').style.width = '400px';
	document.getElementById('Process').style.zIndex = '100';
	document.getElementById('Process').style.padding = '50px 50px 50px 50px';
	document.getElementById('Process').style.posLeft = window.pageXOffset + window.innerWidth/2 - 400/2;
	document.getElementById('Process').style.posTop = window.pageYOffset + window.innerHeight/2 - 300/2;
	document.getElementById('Process').style.display ='block';	
	return false;
}
</script>

------------

<div id="Process" style="display:none;">
		<div id="Description"></div>
    	<p><div align="right"><button type="button" value="закрыть" onclick="hideProcess()" id="CloseBtn">Закрыть</button></div>       
</div>


<a href="#" onclick="showProcess(41)">Process 41</a>
<div style="display:none" id="41">Description</div>
Ответить с цитированием
  #2 (permalink)  
Старый 17.01.2011, 19:20
Аватар для Vulkan
Профессор
Отправить личное сообщение для Vulkan Посмотреть профиль Найти все сообщения от Vulkan
 
Регистрация: 25.05.2010
Сообщений: 511

IE с window.pageY/XOffset window.innerHeight/Width работает некорректно. И кстати id элементам назначайте те, которые начинаются не с цифры, так делать нельзя.
Вот корректный вариант:
<script language="javascript">
function getClientWidth()
{
  return document.compatMode=='CSS1Compat' && !window.opera?document.documentElement.clientWidth:document.body.clientWidth;
}

function getClientHeight()
{
  return document.compatMode=='CSS1Compat' && !window.opera?document.documentElement.clientHeight:document.body.clientHeight;
}

function showProcess(id){

 	document.getElementById('Description').innerHTML = document.getElementById(id).innerHTML;
	document.getElementById('Description').style.border = 'dashed #d5d5d5 1px';
	document.getElementById('Description').style.backgroundColor = '#f9f9f9';
	document.getElementById('Description').style.padding = '10px 15px 10px 15px';
	document.getElementById('Description').style.lineHeight = '1.4';
	document.getElementById('Process').style.position = 'absolute';
	document.getElementById('Process').style.overflow = 'hidden';
	document.getElementById('Process').style.fontSize = '12px';
	document.getElementById('Process').style.textAlign = 'justify';
	document.getElementById('Process').style.background = '#fff';
	document.getElementById('Process').style.width = '400px';
	document.getElementById('Process').style.zIndex = '100';
	document.getElementById('Process').style.padding = '50px 50px 50px 50px';
	document.getElementById('Process').style.posLeft = document.body.scrollLeft + getClientWidth()/2 - 400/2;
	document.getElementById('Process').style.posTop = document.body.scrollTop + getClientHeight()/2 - 300/2;
	document.getElementById('Process').style.display ='block';	
	return false;
}
</script>

<body>
------------

<div id="Process" style="display:none;">
		<div id="Description"></div>
    	<p><div align="right"><button type="button" value="закрыть" onclick="hideProcess()" id="CloseBtn">Закрыть</button></div>       
</div>


<a href="#" onclick="showProcess(41)">Process 41</a>
<div style="display:none" id="41">Description</div>
</body>

Последний раз редактировалось Vulkan, 17.01.2011 в 19:22.
Ответить с цитированием
  #3 (permalink)  
Старый 17.01.2011, 19:39
Новичок на форуме
Отправить личное сообщение для Yamasa Посмотреть профиль Найти все сообщения от Yamasa
 
Регистрация: 17.01.2011
Сообщений: 3

Спасибо! Все работает.

Только вот наблюдается такой эффект. В IE не смотря на то, что документ проскролили вниз, слой все равно открывается фиксировано, а в других браузерах слой всегда открывается по центру окна. В IE на это можно как-то повлиять?
Ответить с цитированием
  #4 (permalink)  
Старый 17.01.2011, 19:51
Аватар для Vulkan
Профессор
Отправить личное сообщение для Vulkan Посмотреть профиль Найти все сообщения от Vulkan
 
Регистрация: 25.05.2010
Сообщений: 511

Попробуйте style.position = 'fixed' выставить
Ответить с цитированием
  #5 (permalink)  
Старый 17.01.2011, 20:02
Новичок на форуме
Отправить личное сообщение для Yamasa Посмотреть профиль Найти все сообщения от Yamasa
 
Регистрация: 17.01.2011
Сообщений: 3

Работает. Еще раз спасибо
Ответить с цитированием
  #6 (permalink)  
Старый 17.01.2011, 21:44
Аватар для ksa
ksa ksa вне форума
CacheVar
Отправить личное сообщение для ksa Посмотреть профиль Найти все сообщения от ksa
 
Регистрация: 19.08.2010
Сообщений: 14,123

Сообщение от Vulkan
И кстати id элементам назначайте те, которые начинаются не с цифры, так делать нельзя.
Тут не разрешают такое говорить...
id элемента не может начинаться с цифры?
Ответить с цитированием
  #7 (permalink)  
Старый 18.01.2011, 07:40
Аватар для Vulkan
Профессор
Отправить личное сообщение для Vulkan Посмотреть профиль Найти все сообщения от Vulkan
 
Регистрация: 25.05.2010
Сообщений: 511

Не видел раньше этой темы, приму к сведению =)
Ответить с цитированием
Ответ


Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Определение высоты документа работает не во всех браузерах Neokortex jQuery 5 11.01.2011 17:26
Не работает в других браузерах кроме IE saider Opera, Safari и др. 2 16.10.2010 21:33
Не работает код из внешнего файла в IE6 Petka jQuery 2 03.03.2010 16:09
Код работает правильно на всех основных браузерах, кроме IE AquaForm Internet Explorer 9 24.11.2009 22:55
Скрипт не работает во всех браузерах, кроме Оперы Yadooumne! Элементы интерфейса 6 27.10.2008 17:08