Skip to content

Commit 0c63472

Browse files
committed
Editor: manually trigger change event when text is modified from JS.
Props westonruter. Fixes #40726. git-svn-id: https://develop.svn.wordpress.org/trunk@40615 602fd350-edb4-49c9-b593-d223f7449a82
1 parent ab5cd50 commit 0c63472

2 files changed

Lines changed: 20 additions & 2 deletions

File tree

src/wp-includes/js/quicktags.js

Lines changed: 19 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -406,7 +406,7 @@ function edButton(id, display, tagStart, tagEnd, access) {
406406
};
407407

408408
qt.insertContent = function(content) {
409-
var sel, startPos, endPos, scrollTop, text, canvas = document.getElementById(wpActiveEditor);
409+
var sel, startPos, endPos, scrollTop, text, canvas = document.getElementById(wpActiveEditor), event;
410410

411411
if ( !canvas ) {
412412
return false;
@@ -433,6 +433,15 @@ function edButton(id, display, tagStart, tagEnd, access) {
433433
canvas.value += content;
434434
canvas.focus();
435435
}
436+
437+
if ( document.createEvent ) {
438+
event = document.createEvent( 'HTMLEvents' );
439+
event.initEvent( 'change', false, true );
440+
canvas.dispatchEvent( event );
441+
} else if ( canvas.fireEvent ) {
442+
canvas.fireEvent( 'onchange' );
443+
}
444+
436445
return true;
437446
};
438447

@@ -515,7 +524,7 @@ function edButton(id, display, tagStart, tagEnd, access) {
515524
return ret;
516525
};
517526
qt.TagButton.prototype.callback = function(element, canvas, ed) {
518-
var t = this, startPos, endPos, cursorPos, scrollTop, v = canvas.value, l, r, i, sel, endTag = v ? t.tagEnd : '';
527+
var t = this, startPos, endPos, cursorPos, scrollTop, v = canvas.value, l, r, i, sel, endTag = v ? t.tagEnd : '', event;
519528

520529
if ( document.selection ) { // IE
521530
canvas.focus();
@@ -590,6 +599,14 @@ function edButton(id, display, tagStart, tagEnd, access) {
590599
}
591600
canvas.focus();
592601
}
602+
603+
if ( document.createEvent ) {
604+
event = document.createEvent( 'HTMLEvents' );
605+
event.initEvent( 'change', false, true );
606+
canvas.dispatchEvent( event );
607+
} else if ( canvas.fireEvent ) {
608+
canvas.fireEvent( 'onchange' );
609+
}
593610
};
594611

595612
// removed

src/wp-includes/js/wplink.js

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -380,6 +380,7 @@ var wpLink;
380380

381381
wpLink.close();
382382
textarea.focus();
383+
$( textarea ).trigger( 'change' );
383384

384385
// Audible confirmation message when a link has been inserted in the Editor.
385386
wp.a11y.speak( wpLinkL10n.linkInserted );

0 commit comments

Comments
 (0)