Введите значение ввода с помощью greasemonkey
У меня есть некоторые входные значения, содержащиеся в куче div и формы. У меня ограниченные знания js и я хотел бы использовать greasemonkey для установки значений при загрузке страницы.
Ниже показан порядок элементов div и форм для получения значения.
<div data-role="page" id="finalTest">
<div data-role="content">
<form class="cmxform" id="ftForm">
<div id="finalTestForOtherDiv" >
<div data-role="fieldcontain" class="special-spacing">
<div class="input-div">
<label id="finalTestBeforeAcTgrLabel" for="finalTestBeforeAcTg" data-insight="true"
class="mandatory" data-default="mandatory"><img class="label-image" alt="" src="../Images/icon-alert.png" />AC V (T/G):</label>
<input type="text" id="finalTestBeforeAcTg" name="finalTestBeforeAcTg" value="" style="width:100px; display:inline-block;"
data-bind="binder.BeforeAcTg" data-bind-action-when-hidden="Ignore" />
<span class="ui-content" style="padding-left:7px;">V</span>
<div class="error-message"><ul></ul></div>
</div>
Вот сценарий, который я пытался использовать, но ничего не делает.
// ==UserScript==
// @name Final Test
// @description Final test results
// @include https://techaccess.ad.qintra.com/WorkJobs/WorkJobs.aspx#finalTest
// ==/UserScript==
document.getElementById("finalTestBeforeAcTg").value = "0.00";
2 ответа
document.getElementById("finalTestBeforeAcTg").value = "your value";
Если ваша попытка сценария не работает, это может быть связано с одним или несколькими из следующих действий:
@include
слишком ограничительный- Узел еще не существует. Активен ли AJAX на странице?
- Предварительные события javascript должны запускаться, чтобы страница подтверждала или принимала новое значение.
Для выпуска 1 измените скрипт на:
// ==UserScript==
// @name Final Test
// @description Final test results
// @include http://techaccess.ad.qintra.com/WorkJobs/*
// @include https://techaccess.ad.qintra.com/WorkJobs/*
// ==/UserScript==
alert ("Script start.");
var finTestInput = document.getElementById ("finalTestBeforeAcTg");
if (finTestInput) {
finTestInput.value = "0.00";
}
else {
alert ("The target input does not exist yet!")
}
Обратите внимание, что если вы используете Firebug (вы должны), измените alert()
с unsafeWindow.console.log()
s.
Для выпуска 2 используйте waitForKeyElements
полезность. Посмотрите этот ответ, например.
Для вопроса 3: Мы мало что можем сделать без доступа к странице, чтобы выяснить правильную последовательность событий.
Дайте нам доступ к странице, или используйте Firebug (и панель "События"), чтобы выяснить это, или, может быть, будет достаточно снимка как HTML страницы, так и файлов JS страницы, на http://pastebin.com/ (возможно).