Есть программируемая библиотека под названием «xdotool»:
sudo apt-get install libxdo-dev libxdo2
cat test.c
blockquote>#include & lt; stdio.h & gt; #include & lt; stdlib.h & gt; #include & lt; xdo.h & gt; #include & lt; unistd.h & gt; int main () {xdo_t * x = xdo_new (": 0.0"); while (1) {printf («имитирующий Shift_L keypress \n»); xdo_keysequence (x, CURRENTWINDOW, «Shift_L», 0); сна (5); } return 0; }
Выполните следующие действия:
gcc test.c -lxdo -o test
blockquote>
Это uuid / jQuery.expando, что jQuery добавляет к каждому элементу DOM, с которым он взаимодействует, для работы с утечками памяти браузера.
Код старого стиля ждал, когда window.onunload отвяжет данные Javascript из тегов DOM для предотвращения утечек памяти. JQuery избегает этого, используя простое число (например, в примере кода) в атрибуте, а затем сохраняя хэш-файл в Javascript тегов и номеров (который он вызывает uuid).
Имя странного атрибута это значение jQuery.expando, которое вы можете легко искать в коде и видеть, что каждый раз он устанавливается на случайное значение. Это делается для того, чтобы несколько копий jQuery могли сосуществовать на странице, не мешая друг другу.
Я не знаю, какой прецедент мне понадобился, когда мне нужно больше, чем один jQuery на на той же странице, и я подозреваю, что вам тоже не нужна эта функциональность - вы можете легко решить эту проблему, просто исключив эту функцию. Измените код, чтобы установить jQuery.expando на какое-то жестко закодированное значение, например «jquery», вместо случайного числа, и вам хорошо идти.
Будьте осторожны, чтобы никогда не использовать jQuery дважды в на той же странице! Хотя делать это случайно вводит много других странных побочных эффектов, а также (как и повторное использование $), так что точка может быть спорным.
Я иду в немного более подробно о jQuery.expando / UUID в этот вопрос: Почему JQuery не демонстрирует свою функциональность UUID?
В этой записи вы заметите, что значение атрибута является случайным-иш - это счетчик основанный на том, с какими мечами уже был связан jQuery. Если ваш код требует, чтобы значение атрибута было согласованным, вы все равно можете столкнуться с проблемами.
Обновить
Вам нужно будет изменить источник jquery. Например, 1.6.2: http://code.jquery.com/jquery-1.6.2.js
Включает следующее:
jQuery.extend({
cache: {},
// Please use with caution
uuid: 0,
// Unique for each copy of jQuery on the page
// Non-digits removed to match rinlinejQuery
expando: "jQuery" + ( jQuery.fn.jquery + Math.random() ).replace( /\D/g, "" ),
Вы можете изменить линию expando следующим образом:
// Does not support multiple copies of jQuery on the same page!
// 0 included to match rinlinejQuery (/jQuery\d+/)
expando: "jQuery0",
Я считаю, что это то, что jQuery делает внутри, чтобы отслеживать все элементы в DOM, которые вы используете для jQuery-событий. Возможно, вы не сможете удалить их, не отпуская события.