Показать полную графическую версию : [решено] JS в горящей лисичке(Mozilla Firefox) не работает....
BASSON_XVI
26-03-2008, 17:06
vadimiron, и что ка мне это поможет я знаю как работает инннер и оутер! Я вообще то не про это спрашиваю....
привет. Думаю нужно для хорошего стиля разграничить css javascript и html.(извините пример большой). Вообще вынести в отдельные файлы а не как у меня. А в html останется только див. В яваскрипте присуждать только изменяемые свойства(положение на странице). Разбить длинный стринг на несколько частей.
PS я не смог сделать setAttribute(), почемуто не пашет. Кто знает почему?
<html>
<head>
<style type="text/css">
#popup{
display:none;
position:absolute;
width:300px;
height:360px;
z-index:0;
}
#popup table{
width:100%;
}
#popup table th{
background:#330099;
color:#fff;
}
#popup table td{
background:#3399CC;
color:#fff;
}
</style>
<script language="javascript">
<!--
function popup_user_del(){
var popup = document.getElementById("popup");
popup.style.display = "block";
popup.style.left = (screen.availWidth / 2 - 150)+"px";
popup.style.top = (screen.availHeight / 2 - 180)+"px";
var tab = "<table border=0 cellspacing=1 llpadding=0>"
tab += "<tr><th colspan='2'>Удаление пользователя</th></tr>";
tab += "<tr><td>ФИО</td><td>Аноним</td></tr>";
tab += "<tr><td>Возраст</td><td>80</td></tr>";
tab += "</table>";
tab += "<a href='javascript:void(0)' onclick='popup_close()'>Закрыть</a>"
popup.innerHTML = tab;
}
function popup_close(){
document.getElementById("popup").style.display = "none";
}
//-->
</script>
</head>
<body>
<a href="#" onclick="javascript: popup_user_del();">Покажи</a>
<div id="popup">
</div>
</body>
</html>
BASSON_XVI
26-03-2008, 20:39
Спасибо тебе но наверно ты не понял корень проблемы. Виш какая вещ я уже органицзовал вылет подтверждения. Мне просто хотелось бы что бы в иннерХТМл ну или в переменную счтитать хтмл код с другой страницы. Я хочю отдельно создать del_user.html создать popup.js и index.html так вот в индекс прописать онклик для запуска функции в popup и вот в popup мне надо считать данные с del_user в переменную и вывести через иннерХТМЛ в index. Так вот вызов popup я осуществи функцию в нем написал. Вы мне подскажите как сичатать с del_user данные в переменную и все. Терь вроде доходчиво обьяснил :)
Одно из решений - использовать iframe. Смотри как получается. Есть страница qu.html. В ней единственный див
<HTML>
<HEAD>
</HEAD>
<BODY>
<DIV ID="aa">
Site N2
</DIV>
</BODY>
</HTML>
на другой странице имеем iframe, делаем его 1x1 пиксель, чтоб было интересней. Не надо делать display:none, потому как некоторые браузеры его вообще не грузят. Получает содержимое страницы как DOM и вуаля
<HTML>
<HEAD>
</HEAD>
<BODY>
<iframe src="qu.html" width="1" height="1" id="editor" onload="my();"></iframe>
<SCRIPT LANGUAGE="JavaScript">
function my(){
a = document.getElementById("editor").contentWindow.document.getElementById("aa");
alert(a.innerHTML);
}
</SCRIPT>
</BODY>
</HTML>
Гдето я читал давно что с iframami не все браузера дружат, но не помню в каком смысле. Поддерживают iframe даже древние. Если кто может выложить интереснее решение, тому респект, будет интересно посмотреть
BASSON_XVI
26-03-2008, 23:23
Спасибо тебе bruder. Я просто почемуто думал что в яваскрипет есть что то типа include как в php взял да вызвал страницу по команде в нужное место и все.. А оно вот как все мудренно... Увы но я не люблю фреймы :(
тады обратись еще раз к Coutty. Там действительно чисто яваскрипт решение, по моему неплохое.
А мне уже кажется, что не такое уж и хорошее:)
Вот представьте - кликнул пользователь не туда, надо выдать окошко предупреждения. Скажем, с моим инетом на запрос через заграничный прокси уйдёт секунд 10. И всё это время я буду ждать, пока загрузится страница-предупреждение?
Там надо-то пару строчек html, чтобы окошко выдать. Зачем же его с внешнего файла брать?
BASSON_XVI
27-03-2008, 09:51
Э}{ B6I MEH9| ПЕРЕУБЕДИЛИ :)
Но все равно твой Coutty кодик мне пригодиться да и твой bruder тоже спасибо вам ребята. Пока буду писать дальше. Теперь единственное что меня останавливает от релиза моей CMS так это только wysiwyg редактор кторый у меня тоже надо дороботать, но это позже а пока БОЛЬШОЕ ЧЕЛОВЕЧЕСКОЕ СПАСИБО :)
BASSON_XVI
04-05-2008, 08:02
вообщем я тут опять со своими всплывающими окошками... вообщем вот так я определяю ширину и высоту экрана и центрирую окошко:
swidth = screen.availWidth / 2 - 150
sheight = screen.availHeight / 2 - 180
Проблема 1: аваи определяет разрешение экрана а мне надо определить длину страницы, длина её зависит от контента, тоесть когда ты прокрутил страницу до конца и вызвал окошко оно появиться в верху.. Собсно как мне узнать в какой части страницы находиться пользователь что бы выводить окошко ему под нос...
Проблема 2: аваи вооще не пашет под мозилой.(или у меня не пашет.)
И ешё можно ли пару ссылочек дать на спецификацию мозилы и какойнить хороший справочник по js а то полазал по нету и не чего не нашол стоешего...
// Эти определяют размер доступной части документа (но без прокрутки страницы)
sheight = document.body.clientHeight;
swidth = document.body.clientWidth;
Потом вывести <div style='position:fixed; top:" + (sheight * 0.4) + "; left: " + (swidth * 0.4) + "'>мур-мур-мур</div>
Но position:fixed вроде бы не работает в IE6 - хз...
Учебник по JS от разработчиков стандартов:
http://www.w3schools.com/js/default.asp
Там же и указывается в каких браузерах это будет работать.
BASSON_XVI
04-05-2008, 15:58
Вставил проверил все тоже самое что и с моим методом... Также прокручиваеш в низ страницу тыкаеш на кнопку и вуаля появляеться окошко в верху... что делать??? :(
Не знаю, как вы пробуете... Вот полный пример:
<html>
<head>
<title>Заголовок</title>
<meta http-equiv="content-type" content="text/html; charset=windows-1251" />
<script>
function showDiv() {
a = document.getElementById('hid').style;
a.display = 'inline';
a.top = document.body.clientHeight * 0.4;
a.left = document.body.clientWidth * 0.4;
}
</script>
</head>
<body>
Сюда надо написать много-много рыбного текста, но для экономии трафика я его опускаю.
<input type='button' value='Воткни курсор в меня' onclick='showDiv()' />
<div id="hid" style='display:none; position:fixed; width:400; height:300; background-color:red'>Какое-то сообщение</div>
</body>
</html>
Тыкаете в кнопку и красный слой с "каким-то сообщением" появляется в строго заданном месте на экране.
Проверил в опере 9.23 и фф 1.5
может он такое имел ввиду
<HTML>
<HEAD>
<SCRIPT LANGUAGE="JavaScript">
<!--
function a(){
sheight = document.body.scrollHeight-(document.body.clientHeight/2);
swidth = document.body.clientWidth/2;
var s = document.getElementById("ko");
s.style.top = sheight;
s.style.left = swidth;
s.style.display = "block";
}
//-->
</SCRIPT>
</HEAD>
<BODY>
START<BR>.....много <br>
<div id="ko" style="position:absolute; top:0; left: 0;display:none;background-color:red">Hallo</div>
<A HREF="javascript:a();">dfgdfdfg</A>
</BODY>
</HTML>
надо еще везде половину высоты и ширины дива вычесть
BASSON_XVI
04-05-2008, 17:13
Гм я наверно не могу правильно обьяснить но bruder что то близко.. просто мне слой надо центровать именно в той части страницы в которую сейчас пользователь спроматривает... вот вроде правильно обьяснил..
BASSON_XVI
04-05-2008, 17:53
Вообщем можно как нить узнать скольо пикселей пользователь уже прокрутил скролингом от верха или низа???
действительно не въехал в суть вопроса :)
<HTML>
<HEAD>
</HEAD>
<BODY>
<HTML>
<HEAD>
<SCRIPT LANGUAGE="JavaScript">
<!--
function a(){
height = self.pageYOffset || (document.documentElement && document.documentElement.scrollTop) || (document.body && document.body.scrollTop);
height = height + document.body.clientHeight/2;
width = document.body.clientWidth/2;
var s = document.getElementById("ko");
s.style.top = height;
s.style.left = width;
s.style.display = "block";
}
//-->
</SCRIPT>
</HEAD>
<BODY>
START<BR><br><BR><br><BR><br><BR><br><BR><br><BR><br><BR><br><BR><br><BR><br><BR><br><BR><br><BR><br><BR><br><BR><br><BR><br><BR><br><BR><br><BR><br><BR><br><BR><br><BR><br><BR><br><BR><br><BR><br><BR><br><BR><br><BR><br><BR><br><BR><br><BR><br><A HREF="javascript:a();">dfgdfdfg</A><BR><br><BR><br><BR><br><BR><br><BR><br><BR><br><BR><br><BR><br><BR><br><BR><br><BR><br><BR><br><BR><br><BR><br><BR><br><BR><br><BR><br><BR><br>
<div id="ko" style="position:absolute; top:0; left: 0;display:none;background-color:red">Hallo</div>
<A HREF="javascript:a();">dfgdfdfg</A>
</BODY>
</HTML>
</BODY>
</HTML>
BASSON_XVI
04-05-2008, 18:13
bruder, вооо спасибо работает сразу мне надо было так написать :)) :oszone:
Хм... И чем этот результат отличается от того, что я предложил? Также отображается в том месте экрана, где требуется. Разве только я не стал отцентровывать - оставил на вашу совесть:)
а у меня почемуто внизу только отображается. Если все пашет, прошу убрать мои решения, наверно проглядел гдето ....
-------------------------------------
действительно в ff пашет, в ие нет, но думаю можно доработать. А я в IE в первую очередь тестировал, сами понимаете преимущество на рынке. Так что извиняюсь :)
bruder, твоё в №36 пашет точно. В №33 не посмотрел.
Но убирать не надо. Альтернатива всегда должна быть :)
© OSzone.net 2001-2012
vBulletin v3.6.4, Copyright ©2000-2025, Jelsoft Enterprises Ltd.