Используйте этот код, я протестировал его с помощью / example / 01.basic.html и 02.full.html,
Я думаю, что это будет работать и с другими:
$(document).ready(function(){
var current = $("#wysiwyg-wysiwyg-iframe").contents().find('html');
function detectFn(){
alert('Detected');
}
var timer;
current.bind({
keyup: function(){
clearTimeout(timer);
timer = setTimeout(detectFn, 2000)
}
});
});
Источники :
Ясир Лагхари и Гомми действительно ценят это решение.
jQuery / JavaScript: доступ к содержимому iframe
При нажатии клавиши, когда останов через X секунд вызывает функцию
Объяснение
1) «Плагин jwysiwyg» заменяет текстовое поле на iframe. Текст находится внутри тега 'p', еще одна вещь, которую следует учитывать, это то, что этот тег нельзя щелкнуть; если вы щелкаете текст, то на самом деле вы нажимаете тег 'iframed html'.
2) Чтобы jQuery мог получить доступ к элементу iframed и выбрать его, необходимо использовать метод contents (). Таким образом, мы можем начать запуск некоторых функций с помощью iframe.
3) Создайте DetectFn (), который будет выполнять код, который вы хотите использовать после обнаружения изменения в поддельной текстовой области.
4) Объявить переменную 'timer'.
5) Для использования события keyup необходимо использовать метод bind () с тегом iframed html. Таким образом, будет смоделировано печатное действие текстовой области.
6) Каждый keyup будет выполнять функцию обнаружения несколько раз, чтобы предотвратить это, мы используем метод setTimeout и сохраняем DeteFn в переменной 'timer'. Наконец, переменная должна быть передана в clearTimeout в качестве аргумента, таким образом, каждое нажатие клавиши отменяет предыдущее выполнение функции обнаружения.