Ru-Board.club
← Вернуться в раздел «Web-программирование»

» вопросы по javascript

Автор: kosorikov1
Дата сообщения: 16.07.2012 10:14

Код:
<!DOCTYPE HTML>
<html>
<head>
<title> New Document </title>
<meta name="Generator" content="EditPlus">
</head>
<body>
<div id="block" style="border:1px solid red">erte</div>
<script>
alert(document.getElementById("block").style.width);
</script>

</body>
</html>
Автор: Cheery
Дата сообщения: 16.07.2012 17:56
kosorikov1

Цитата:
А как мне узнать длину блока?

clientWidth
Автор: kosorikov1
Дата сообщения: 20.07.2012 11:05
А вот еще такой вопрос. Увидел на сайте такую запись:

В html коде : <script src="/i/201207121900/js/script.js" type="text/javascript"></script>

А в самом скрипте:

Код:
js = {};
js.include = function(path) {
    document.write('<script type="text/javascript" src="' + path + '"></sc'+'ript>');
}

js.include('js/json2.js');
js.include('js/jquery.js');
js.include('js/toolkit.js');
js.include('js/jquery.cookie.js');

Автор: ubian
Дата сообщения: 20.07.2012 13:55
kosorikov1
js = {} - создается массив.
Далее создается функция для включения других файлов. Т.е. js.include загружает другие файлы (включает их на страницу. Собственно после объявления функции она и используется. Защита от копирования вот такими как вы неопытными пользователями.
Автор: Church
Дата сообщения: 20.07.2012 14:05

Цитата:
js = {} - создается массив.


не массив.. объект

И как правило, это делается не для защиты от копирования, а для разделения скриптов от верстки. В данном случае, чтобы добавить новые скрипты - не нужно править html.
Автор: kosorikov1
Дата сообщения: 20.07.2012 14:07
Но ведь я все равно могу достать эти ф-лы чтобы посмотреть что там как

Добавлено:

Цитата:
И как правило, это делается не для защиты от копирования, а для разделения скриптов от верстки. В данном случае, чтобы добавить новые скрипты - не нужно править html.


это уже логичнее, но стоит ли ради этого создавать лишний файл?
Автор: ubian
Дата сообщения: 20.07.2012 17:55

Цитата:
не массив.. объект

Ну извините меня, Lua-кодера

Цитата:
это уже логичнее, но стоит ли ради этого создавать лишний файл?

Вот когда у тебя будет кучка этих скриптов - стоит. А ради 2-3 скриптов - нет.
Автор: kosorikov1
Дата сообщения: 26.07.2012 16:26
Еще такой вопрос: как пользоваться modernizr.js (http://modernizr.com/) мне нужна поддержка csscolumns в IE. Выделяю нужный пункт, скачиваю, подключаю - не работает
Автор: Cheery
Дата сообщения: 26.07.2012 21:12
kosorikov1

Цитата:
подключаю

как подключаете? просто js файл или как то еще?
Автор: kosorikov1
Дата сообщения: 27.07.2012 14:25
<script src="бла-бла"></script>
Автор: Cheery
Дата сообщения: 27.07.2012 20:14
kosorikov1
а лог ошибок в браузере что то говорит?
Автор: wwwww
Дата сообщения: 05.08.2012 13:01
Новые 2 вопроса:
1. имеется скрипт вида

Код: (function(e,c){function a(){return false}function b(){return true}function d(f,h,n){n[0].type=f;return k.event.handle.apply(h,n)}function g(f){var h,n,o=[],r=[],u,x,z,C,J,L,R,U;x=k.data(this,this.nodeType?"events":"__events__");if(typeof x==="function")x=x.events;if(!(f.liveFired===this||!x||!x.live||f.button&&f.type==="click")){if(f.namespace)U=RegExp("(^|\\.)"+f.namespace.split(".").join("\\.(?:.*\\.)?")+"(\\.|$)");f.liveFired=this;var Z=x.live.slice(0);for(C=0;C<Z.length;C++){x=Z[C];x.origType.replace(la,
"")===f.type?r.push(x.selector):Z.splice(C--,1)}r=k(f.target).closest(r,f.currentTarget);J=0;for(L=r.length;J<L;J++){R=r[J];for(C=0;C<Z.length;C++){x=Z[C];if(R.selector===x.selector&&(!U||U.test(x.namespace))){z=R.elem;u=null;if(x.preType==="mouseenter"||x.preType==="mouseleave"){f.type=x.preType;u=k(f.relatedTarget).closest(x.selector)[0]}if(!u||u!==z)o.push({elem:z,handleObj:x,level:R.level})}}}J=0;for(L=o.length;J<L;J++){r=o[J];if(n&&r.level>n)break;f.currentTarget=r.elem;f.data=r.handleObj.data;
f.handleObj=r.handleObj;U=r.handleObj.origHandler.apply(r.elem,arguments);if(U===false||f.isPropagationStopped()){n=r.level;if(U===false)h=false}}return h}}function m(f,h){return(f&&f!=="*"?f+".":"")+h.replace(sa,"`").replace(va,"&")}function q(f,h,n){if(k.isFunction(h))return k.grep(f,function(r,u){return!!h.call(r,u,r)===n});else if(h.nodeType)return k.grep(f,function(r){return r===h===n});else if(typeof h==="string"){var o=k.grep(f,function(r){return r.nodeType===1});if(Va.test(h))return k.filter(h,
o,!n);else h=k.filter(h,o)}return k.grep(
Автор: ubian
Дата сообщения: 05.08.2012 13:20
wwwww
1. Notepad++ и руки?
2. Ссылочку можно?
Автор: wwwww
Дата сообщения: 05.08.2012 14:57
1. там 300 кил, мегалениво
2. если с сервера - норм.
Автор: Cheery
Дата сообщения: 05.08.2012 18:39
wwwww

Цитата:
нет ли какой-нить програмулины, которая привела бы его в удобочитаемый вид?

нет


Цитата:
Можно ли сделать чтобы сперва грузилась страница, ил лишь потом лайки

делайте асинхронную загрузку
Автор: wwwww
Дата сообщения: 05.08.2012 21:22

Цитата:
делайте асинхронную загрузку

как?
Автор: Cheery
Дата сообщения: 05.08.2012 22:02
wwwww

Цитата:
как?

почитайте документацию к API сервисов - там про это должно быть сказано.
http://developers.facebook.com/docs/reference/javascript/
Автор: wwwww
Дата сообщения: 06.08.2012 16:13
В css элемент имеет св-во #descr{visibility:hidden}


пытаюсь его узнать
Код: alert(document.getElementById("descr").style.visibility)
Автор: Cheery
Дата сообщения: 06.08.2012 17:52
wwwww

Цитата:
почему-то выводится пустота

полностью код плиз..
Автор: wwwww
Дата сообщения: 06.08.2012 21:37

Код: <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<html>
<head>
<title> New Document </title>
<style>
#descr {visibility:hidden}
</style>
</head>

<body>
<div id="descr">asdasd</div>
<script>
alert(document.getElementById("descr").style.visibility)
</script>
</body>
</html>
Автор: Cheery
Дата сообщения: 06.08.2012 23:00
wwwww
потому что у вас свойства прописаны не в аттрибуте style данного элемента
для такой ситуации нужно запрашивать css свойства "вычисленные" браузером

Код: <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<html>
<head>
<title> New Document </title>
<style>
#descr {visibility:hidden;}
</style>
</head>

<body>
<div id="descr">asdasd</div>
<script>
var el = document.getElementById("descr");
var style = el.currentStyle || window.getComputedStyle(el, null);
alert(style.visibility)
</script>
</body>
</html>
Автор: wwwww
Дата сообщения: 07.08.2012 09:34

Цитата:
для такой ситуации нужно запрашивать css свойства "вычисленные" браузером


сразу же возникает вопрос - как?
Автор: Cheery
Дата сообщения: 07.08.2012 09:42
wwwww

Цитата:
сразу же возникает вопрос - как?

ну вы вообще уже.. выше посмотрите
Автор: wwwww
Дата сообщения: 07.08.2012 10:15
Да, чего-то я затормозил. Вроде вычисляется, но как-то странно

Код:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<html>
<head>
<title> New Document </title>
<style>

#descr {visibility:hidden;}
div:hover #descr{visibility:visible;}

</style>
</head>

<body>
<div onmouseout="info()">наведи
<div id="descr">asdasd</div>
</div>
<script>
function info(){
var el = document.getElementById("descr");
var style = el.currentStyle || window.getComputedStyle(el, null);
if(style.visibility=="hidden") el.innerHTML="пусто";
}
</script>
</body>
</html>

Автор: Cheery
Дата сообщения: 07.08.2012 20:20
wwwww

Цитата:
Но чего-то не выходит

а точнее?
http://jsfiddle.net/ZbWGD/
Автор: wwwww
Дата сообщения: 07.08.2012 23:15
пусто появляется только когда мы уходим с "наведи" в никуда. А нужно чтобы и при уходе с "asdasd" в никуда появлялось "пусто".
Автор: Cheery
Дата сообщения: 07.08.2012 23:24
wwwww

Цитата:
А нужно чтобы и при уходе с "asdasd" в никуда появлялось "пусто".

ну так цепляйте на него обработчик onmouseout
Автор: unreal666
Дата сообщения: 10.11.2012 09:27
почему так работает:

Код: var $$$ = new ( (function(){
    function init() {
        this.initialize();
    }
    init.prototype = {
        initialize: function() {
            var that = this;
            this.UserAgent = {
                browser: (!+'\v1') ? 'IE' : '', // true только в IE
                browserVersion: 'xxx',
                browserVersionMinor: ''
            }
        }
    };
    return init;
})() )();
echo ($$$.UserAgent.browserVersion)
Автор: Cheery
Дата сообщения: 10.11.2012 09:58
unreal666

Цитата:
(function(){})() ()

а что бы тут означали две пары скобок в конце?

Цитата:
( (function(){})() ) ()

как раз правильно группирует
то есть вы создаете объект из функции и сразу его инициализируете

var t = function() {
}
создает функцию-объект

var t = (function() {
})();
выдает сразу результат выполнения функции в переменную t

var t = new ( (function() {
})())();
создает сразу объект из того, что возвращает функция
Автор: unreal666
Дата сообщения: 10.11.2012 10:18

Цитата:
а что бы тут означали две пары скобок в конце?

ну, тоже что и в 1-ом случае, т.е. выполнение ф-и init. Она и так выполняется, только выдает ошибку об отсутствии ф-и this.initialize().

ЗЫ.
Походу после 1-го "()" внешние скобки "раскрываются" и все ф-и/переменные, бывшие во внешней ф-и, выпадают из области видимости ф-и init.

ЗЫ2.
Потестил немного по-другому. После раскрытия внешних скобок во 2-ом варианте this указывает на window.

ЗЫ3.
Чего-то в Firefox намудрили. Даже результат alert(window) перевели на русский. Т.е. вместо "[object Window]" как в опере, в лисе выводится "Окно"

Страницы: 12345678910111213141516171819202122

Предыдущая тема: jQuery: Перемещение якоря на верх страницы


Форум Ru-Board.club — поднят 15-09-2016 числа. Цель - сохранить наследие старого Ru-Board, истории становления российского интернета. Сделано для людей.