Если вы достаточно счастливы, чтобы получить элемент, используя текстовое содержимое, вы можете сделать это с помощью xPath. Вот простой пример JavaScript с кнопкой для демонстрации ...
// xPath of element you want to find
var xpath = "//a[contains(text(),'Join now')]";
var matchingElement = document.evaluate(xpath, document, null, XPathResult.FIRST_ORDERED_NODE_TYPE, null).singleNodeValue;
// Button code for demonstration purposes
document.getElementById("test").onclick = function () {
alert(matchingElement.id); };
<a id="not-this" href="javascript:void(0);">Don't join.</a>
<a id="4edd60cf-0462-4b8b-9b60-1d41911f3309" href="javascript:void(0);">Join now.</a>
<a id="not-this" href="javascript:void(0);">Now join.</a>
<br><br>
<button id="test">Get the ID</button>
"ОБРАТНЫЙ ВЫЗОВ" является соглашением о вызовах. Существуют другие виды соглашений о вызовах. ОБРАТНЫЙ ВЫЗОВ совпадает с __ stdcall.
http://www.codeguru.com/cpp/cpp/cpp_mfc/callbacks/article.php/c10557
Еще некоторая информация в блоге Raymond Chen:
http://blogs.msdn.com/oldnewthing/archive/2004/01/08/48616.aspx
Короткая сводка новостей из Блога Raymond Chen:
Большая вещь о соглашениях о вызовах по x86 платформе состоит в том, что существуют так многие для выбора из!
C соглашение о вызовах (__ cdecl)
Соглашение о вызовах C ограничивается, потому что оно позволяет использование функций с переменным количеством параметров. Это в значительной степени требует, чтобы стек был убран вызывающими сторонами и что параметры быть продвинутым справа налево, так, чтобы первый параметр был в фиксированной позиции относительно вершины стека. Таким образом: Вызывающая сторона чистит стек, параметры, продвинутые справа налево.
Соглашение о вызовах Паскаля (__ Паскаль)
Паскаль не поддерживает функции с переменным количеством параметров, таким образом, он может использовать чистую вызываемым конвенцию. Параметры продвинуты слева направо. Почти все функции Win16 экспортируются как соглашение о вызовах Паскаля. Чистая вызываемым конвенция сохраняет три байта в каждом извещателе с фиксированными издержками двух байтов за функцию. Это было также незначительно быстрее. На Win16, сохраняя несколько сотен байтов и нескольких циклах было грандиозное предприятие.Примечание: Соглашение о вызовах Фортрана (__ Фортран) совпадает с соглашением о вызовах Паскаля
Это - соглашение о вызовах. Требуется при передаче указателя на эту функцию к Windows API, который позже вызывает ту функцию. Соглашение о вызовах Windows отличается от соглашения о вызовах C, поэтому необходимо указать к компилятору, что WndProc () является особенным, и что ему нужны другой запуск и код очистки.
Это - соглашение о вызовах, и Delphi имеет их также. Попытайтесь искать 'cdecl' в Справке Delphi. В Delphi (или Object Pascal как мы старым произведениям нравится называть его) соглашения о вызовах появляются после объявления функции, как это;
function MyFunction(X, Y: Real): Real; cdecl;