Попробуйте поместить document.getElementById
в setTimeout()
Например.
setTimeout(function(){
console.log(document.getElementById('whatever'));
}, 100);
Если это сработает, тогда это просто проблема синхронизации.
@Dillie-O: Ваш ответ указал мне дорогу (я должен был ожидать, что он просто будет изменением реестра), и я получил эту работу. Но я собираюсь отметить это как ответ, потому что я собираюсь поместить некоторую дополнительную информацию, которую я нашел при работе над этим.
решение этого вопроса действительно не имеет значения, какой язык программирования Вы используете, пока существует некоторый способ изменить настройки реестра Windows.
Наконец, вот ответ:
Эти %1 будут заменены всем mailto URL. Например, учитывая ссылку:
<a href="mailto:user@example.com">Email me</a>
следующее будет выполняться:
" исполняемый файл Вашей программы " "mailto:user@example.com"
Обновление (с помощью комментария shellscape):
С Windows 8, этот метод больше не работает как ожидалось. Win8 осуществляет следующий ключ: HKEY_CURRENT_USER\Software\Microsoft\Windows\Shell\Associati‌†"ons\URLAssociations\‌вЂ" MAILTO\UserChoice, для которого ProgID выбранного приложения хешируется и не может быть создан. Это - королевский ЛАВАШ
Из того, что я видел, существует несколько ключей реестра, которые устанавливают почтовый клиент по умолчанию. Один из них быть:
Системный Ключ: [HKEY_CLASSES_ROOT\mailto\shell\open\command]
Имя Значения: (Default)
Тип данных: REG_SZ
(Строковое Значение)
Данные Значения: Mail program command-line
.
я не familar с Delphi 7
, но я уверен, что существуют [приблизительно 115] библиотеки редактирования реестра там, что Вы могли использовать для изменения этого значения.
Некоторые места перечисляют больше, чем этот ключ , другие просто этот ключ, таким образом, Вы, возможно, должны протестировать немного для нахождения надлежащего (s).
Вот официальное решение Microsoft, чтобы программно изменить почтовый клиент по умолчанию. Это - Visual Basic, но я надеюсь, что понятие ясно из этого: