Я пытаюсь написать простой счетчик слов для фрейма, который загружается на страницу веб-формы ASP. NET. Однако это действительно начинает действовать мне на нервы, так как проблема, с которой я сталкиваюсь, состоит в том, что код, кажется, запускается одну минуту и останавливается в следующую без четкого индикатора того, в чем заключается проблема. Я подозреваю, что это проблема DOM, но я не могу найти решение.
Моя родительская страница имеет это Jquery:
<script type="text/javascript">
$(document).ready(function () {
var maxLimit = 250
$('iframe').load(function () {
var target = $(this).contents().find('#txtDescription');
var openCount = target.text().length;
var counter = $(this).contents().find('#wordcount');
counter.text(openCount + ' characters in length.');
target.on('input', function () {
updateCount(target, counter);
});
});
function updateCount(target, counter) {
var cs = target.val().length;
if (cs <= maxLimit) {
counter.text(cs + ' characters in length.');
counter.css('color', 'black');
} else {
counter.text(cs + ' characters in length. Too long!');
counter.css('color', 'red');
}
}
});
</script>
Когда загружается iframe, вы видите список записей. Нажатие на элемент списка создаст всплывающее окно, содержащее элементы управления. При первой загрузке код должен обнаружить текстовое поле, посчитать длину строки, а затем обновить метку. Затем любой последующий ввод в текстовое поле должен запускать функцию updateCount (). Тем не менее, это кажется очень удачным или нет, решает ли он на самом деле работать.
Я открою страницу, нажму, посмотрю счетчик и затем увижу изменения и другие случаи, я вообще ничего не увижу , Как будто DOM теряет iframe и, несмотря на то, что все настраивается под нагрузкой, он этого не делает.
Кто-нибудь может помочь? Все iframes запускаются из одного домена, и, несмотря на то, что мне приходится делать это в приложении WebForms, я не могу понять, почему это не будет работать последовательно.