Библиотеки переходят к некоторым длинам для получения точных смещений для элемента.
вот простая функция, которая делает задание в каждом обстоятельства, которые я попробовал.
function getOffset( el ) {
var _x = 0;
var _y = 0;
while( el && !isNaN( el.offsetLeft ) && !isNaN( el.offsetTop ) ) {
_x += el.offsetLeft - el.scrollLeft;
_y += el.offsetTop - el.scrollTop;
el = el.offsetParent;
}
return { top: _y, left: _x };
}
var x = getOffset( document.getElementById('yourElId') ).left;
Это будет непросто. То, что вы описываете, редко реализуется в коммерческих базах данных, хотя есть некоторые теоретические результаты в этой области. Я бы посоветовал вам обратиться к ученому Google и начать искать статьи по этой теме.
Вот несколько ссылок, которые помогут вам начать:
НЕТ базы данных, поддерживающей зашифрованный индекс, поэтому вам придется пожертвовать некоторой безопасностью, чтобы достичь этого.
Вы можете индексировать частичные данные в открытом виде и находить реальные данные из своего приложения. Например, если вы хотите сохранить номер кредитной карты. У вас может быть индекс из последних 4 цифр. Количество карт с одинаковыми последними 4 цифрами ограничено, поэтому вы можете позволить себе расшифровать каждую и проверить все число.
Другой вариант - сохранить звуковой индекс зашифрованных данных. Затем вы можете выполнить поиск по значению soundex и приблизиться к нему, не расшифровывая данные.
Oracle 10g Release 2 (или новее) может поддерживать эту функцию. С их веб-сайта здесь:
http://www.oracle.com/technology/oramag/oracle/05-sep/o55security.html
«Новая функция в Oracle Database 10g Release 2 позволяет вам делать именно это: Вы можете объявить столбец зашифрованным, не написав ни одной строчки кода. Когда пользователи вставляют данные, база данных прозрачно шифрует их и сохраняет в столбце. Точно так же, когда пользователи выбирают столбец, база данных автоматически расшифровывает его. выполняется прозрачно, без каких-либо изменений в коде приложения, функция имеет соответствующее имя: Прозрачное шифрование данных (TDE) ».
Идея состоит в том, что никто не может видеть открытый текст в базе данных, но оператор выбора будет работать как обычно.