\r
var SearchReplaceDialog = {\r
init : function(ed) {\r
- var f = document.forms[0], m = tinyMCEPopup.getWindowArg("mode");\r
+ var t = this, f = document.forms[0], m = tinyMCEPopup.getWindowArg("mode");\r
\r
- this.switchMode(m);\r
+ t.switchMode(m);\r
\r
f[m + '_panel_searchstring'].value = tinyMCEPopup.getWindowArg("search_string");\r
\r
// Focus input field\r
f[m + '_panel_searchstring'].focus();\r
+ \r
+ mcTabs.onChange.add(function(tab_id, panel_id) {\r
+ t.switchMode(tab_id.substring(0, tab_id.indexOf('_')));\r
+ });\r
+\r
},\r
\r
switchMode : function(m) {\r
searchNext : function(a) {\r
var ed = tinyMCEPopup.editor, se = ed.selection, r = se.getRng(), f, m = this.lastMode, s, b, fl = 0, w = ed.getWin(), wm = ed.windowManager, fo = 0;\r
\r
+ if (tinymce.isIE11 && !window.find) {\r
+ ed.windowManager.alert("This feature is not available in IE 11+. Upgrade TinyMCE to 4.x to get this functionallity back.");\r
+ return;\r
+ }\r
+\r
// Get input\r
f = document.forms[0];\r
s = f[m + '_panel_searchstring'].value;\r
ca = f[m + '_panel_casesensitivebox'].checked;\r
rs = f['replace_panel_replacestring'].value;\r
\r
+ if (tinymce.isIE) {\r
+ r = ed.getDoc().selection.createRange();\r
+ }\r
+\r
if (s == '')\r
return;\r
\r
function fix() {\r
// Correct Firefox graphics glitches\r
+ // TODO: Verify if this is actually needed any more, maybe it was for very old FF versions? \r
r = se.getRng().cloneRange();\r
ed.getDoc().execCommand('SelectAll', false, null);\r
se.setRng(r);\r
};\r
\r
function replace() {\r
- if (tinymce.isIE)\r
- ed.selection.getRng().duplicate().pasteHTML(rs); // Needs to be duplicated due to selection bug in IE\r
- else\r
- ed.getDoc().execCommand('InsertHTML', false, rs);\r
+ ed.selection.setContent(rs); // Needs to be duplicated due to selection bug in IE\r
};\r
\r
// IE flags\r
ed.selection.collapse(true);\r
\r
if (tinymce.isIE) {\r
+ ed.focus();\r
+ r = ed.getDoc().selection.createRange();\r
+\r
while (r.findText(s, b ? -1 : 1, fl)) {\r
r.scrollIntoView();\r
r.select();\r
\r
if (b) {\r
r.moveEnd("character", -(rs.length)); // Otherwise will loop forever\r
+ } else {\r
+ // to avoid looping for ever in MSIE 9/10 when just\r
+ // changing the case\r
+ r.moveStart("character", rs.length);\r
}\r
}\r
\r
return;\r
\r
if (tinymce.isIE) {\r
+ ed.focus();\r
+ r = ed.getDoc().selection.createRange();\r
+\r
if (r.findText(s, b ? -1 : 1, fl)) {\r
r.scrollIntoView();\r
r.select();\r