Merge remote-tracking branch 'origin/master' into feature/DOC-18

This commit is contained in:
Dylan Just
2018-06-25 16:45:52 +10:00
10 changed files with 108 additions and 116 deletions
-1
View File
@@ -9,5 +9,4 @@ group :development, :test do
gem 'jekyll-sitemap', '~> 1.2.0'
gem 'redcarpet', '~> 3.4.0'
gem 'nokogiri', '~> 1.8.2'
gem 'octopress-minify-html', '1.3.1'
end
-25
View File
@@ -5,22 +5,12 @@ GEM
public_suffix (>= 2.0.2, < 4.0)
colorator (1.1.0)
concurrent-ruby (1.0.5)
css_press (0.3.2)
csspool-st (= 3.1.2)
json
csspool-st (3.1.2)
em-websocket (0.5.1)
eventmachine (>= 0.12.9)
http_parser.rb (~> 0.6.0)
eventmachine (1.2.7)
execjs (2.7.0)
ffi (1.9.25)
forwardable-extended (2.6.0)
html_press (0.8.2)
htmlentities
multi_css (>= 0.1.0)
multi_js (>= 0.1.0)
htmlentities (4.3.4)
http_parser.rb (0.6.0)
i18n (0.9.5)
concurrent-ruby (~> 1.0)
@@ -45,7 +35,6 @@ GEM
jekyll (~> 3.3)
jekyll-watch (2.0.0)
listen (~> 3.0)
json (2.1.0)
kramdown (1.17.0)
liquid (4.0.0)
listen (3.1.5)
@@ -54,18 +43,8 @@ GEM
ruby_dep (~> 1.2)
mercenary (0.3.6)
mini_portile2 (2.3.0)
multi_css (0.1.0)
css_press
multi_js (0.1.0)
uglifier (~> 2)
nokogiri (1.8.2)
mini_portile2 (~> 2.3.0)
octopress-hooks (2.6.2)
jekyll (>= 2.0)
octopress-minify-html (1.3.1)
html_press (~> 0.8)
jekyll (>= 2.0)
octopress-hooks
pathutil (0.16.1)
forwardable-extended (~> 2.6)
public_suffix (3.0.2)
@@ -81,9 +60,6 @@ GEM
sass-listen (4.0.0)
rb-fsevent (~> 0.9, >= 0.9.4)
rb-inotify (~> 0.9, >= 0.9.7)
uglifier (2.7.2)
execjs (>= 0.3.0)
json (>= 1.8.0)
PLATFORMS
ruby
@@ -93,7 +69,6 @@ DEPENDENCIES
jekyll-redirect-from (~> 0.13.0)
jekyll-sitemap (~> 1.2.0)
nokogiri (~> 1.8.2)
octopress-minify-html (= 1.3.1)
redcarpet (~> 3.4.0)
BUNDLED WITH
+1 -4
View File
@@ -28,7 +28,4 @@ redcarpet:
plugins:
- jekyll-redirect-from
- octopress-minify-html
- jekyll-sitemap
minify_html: false
- jekyll-sitemap
@@ -0,0 +1,9 @@
## Mobile Platform Compatibility
| OS | Browser | Device |
|-----------|---------|--------------|
| Android 8 | Chrome | Mobile phone |
| Android 7 | Chrome | Mobile phone |
| Android 6 | Chrome | Mobile phone |
| iOS11 | Safari | iPhone/iPad |
| iOS10 | Safari | iPhone/iPad |
+10
View File
@@ -0,0 +1,10 @@
---
# Jekyll layout that compresses HTML
# v3.0.4
# http://jch.penibelst.de/
# © 20142015 Anatol Broder
# MIT License
---
{% capture _LINE_FEED %}
{% endcapture %}{% if site.compress_html.ignore.envs contains jekyll.environment %}{{ content }}{% else %}{% capture _content %}{{ content }}{% endcapture %}{% assign _profile = site.compress_html.profile %}{% if site.compress_html.endings == "all" %}{% assign _endings = "html head body li dt dd optgroup option colgroup caption thead tbody tfoot tr td th" | split: " " %}{% else %}{% assign _endings = site.compress_html.endings %}{% endif %}{% for _element in _endings %}{% capture _end %}</{{ _element }}>{% endcapture %}{% assign _content = _content | remove: _end %}{% endfor %}{% if _profile and _endings %}{% assign _profile_endings = _content | size | plus: 1 %}{% endif %}{% for _element in site.compress_html.startings %}{% capture _start %}<{{ _element }}>{% endcapture %}{% assign _content = _content | remove: _start %}{% endfor %}{% if _profile and site.compress_html.startings %}{% assign _profile_startings = _content | size | plus: 1 %}{% endif %}{% if site.compress_html.comments == "all" %}{% assign _comments = "<!-- -->" | split: " " %}{% else %}{% assign _comments = site.compress_html.comments %}{% endif %}{% if _comments.size == 2 %}{% capture _comment_befores %}.{{ _content }}{% endcapture %}{% assign _comment_befores = _comment_befores | split: _comments.first %}{% for _comment_before in _comment_befores %}{% if forloop.first %}{% continue %}{% endif %}{% capture _comment_outside %}{% if _carry %}{{ _comments.first }}{% endif %}{{ _comment_before }}{% endcapture %}{% capture _comment %}{% unless _carry %}{{ _comments.first }}{% endunless %}{{ _comment_outside | split: _comments.last | first }}{% if _comment_outside contains _comments.last %}{{ _comments.last }}{% assign _carry = false %}{% else %}{% assign _carry = true %}{% endif %}{% endcapture %}{% assign _content = _content | remove_first: _comment %}{% endfor %}{% if _profile %}{% assign _profile_comments = _content | size | plus: 1 %}{% endif %}{% endif %}{% assign _pre_befores = _content | split: "<pre" %}{% assign _content = "" %}{% for _pre_before in _pre_befores %}{% assign _pres = _pre_before | split: "</pre>" %}{% assign _pres_after = "" %}{% if _pres.size != 0 %}{% if site.compress_html.blanklines %}{% assign _lines = _pres.last | split: _LINE_FEED %}{% capture _pres_after %}{% for _line in _lines %}{% assign _trimmed = _line | split: " " | join: " " %}{% if _trimmed != empty or forloop.last %}{% unless forloop.first %}{{ _LINE_FEED }}{% endunless %}{{ _line }}{% endif %}{% endfor %}{% endcapture %}{% else %}{% assign _pres_after = _pres.last | split: " " | join: " " %}{% endif %}{% endif %}{% capture _content %}{{ _content }}{% if _pre_before contains "</pre>" %}<pre{{ _pres.first }}</pre>{% endif %}{% unless _pre_before contains "</pre>" and _pres.size == 1 %}{{ _pres_after }}{% endunless %}{% endcapture %}{% endfor %}{% if _profile %}{% assign _profile_collapse = _content | size | plus: 1 %}{% endif %}{% if site.compress_html.clippings == "all" %}{% assign _clippings = "html head title base link meta style body article section nav aside h1 h2 h3 h4 h5 h6 hgroup header footer address p hr blockquote ol ul li dl dt dd figure figcaption main div table caption colgroup col tbody thead tfoot tr td th" | split: " " %}{% else %}{% assign _clippings = site.compress_html.clippings %}{% endif %}{% for _element in _clippings %}{% assign _edges = " <e;<e; </e>;</e>;</e> ;</e>" | replace: "e", _element | split: ";" %}{% assign _content = _content | replace: _edges[0], _edges[1] | replace: _edges[2], _edges[3] | replace: _edges[4], _edges[5] %}{% endfor %}{% if _profile and _clippings %}{% assign _profile_clippings = _content | size | plus: 1 %}{% endif %}{{ _content }}{% if _profile %} <table id="compress_html_profile_{{ site.time | date: "%Y%m%d" }}" class="compress_html_profile"> <thead> <tr> <td>Step <td>Bytes <tbody> <tr> <td>raw <td>{{ content | size }}{% if _profile_endings %} <tr> <td>endings <td>{{ _profile_endings }}{% endif %}{% if _profile_startings %} <tr> <td>startings <td>{{ _profile_startings }}{% endif %}{% if _profile_comments %} <tr> <td>comments <td>{{ _profile_comments }}{% endif %}{% if _profile_collapse %} <tr> <td>collapse <td>{{ _profile_collapse }}{% endif %}{% if _profile_clippings %} <tr> <td>clippings <td>{{ _profile_clippings }}{% endif %} </table>{% endif %}{% endif %}
+4 -1
View File
@@ -1,4 +1,7 @@
<!DOCTYPE html>
---
layout: compress
---
<html>
<head>
<meta charset="utf-8">
+59 -67
View File
@@ -9,7 +9,7 @@ keywords: Click DblClick MouseDown MouseUp MouseMove MouseOver MouseOut MouseEnt
## Editor Events
Here is an example on how to bind a handler function to the click event.
Here is an example of how to bind a handler function to the click event.
```js
tinymce.init({
@@ -25,36 +25,36 @@ tinymce.init({
| Event | Native/Core/Plugin | Description |
|-------------|-----------------------|----------------|
| [Click](https://developer.mozilla.org/en/docs/Web/Events/click) | native | Fires when the editor is clicked. |
| [DblClick](https://developer.mozilla.org/en/docs/Web/Events/dblclick) | native | Fires when the editor is double clicked. |
| [MouseDown](https://developer.mozilla.org/en/docs/Web/Events/mousedown) | native | Fires when a mouse button is pressed down inside the editor. |
| [DblClick](https://developer.mozilla.org/en/docs/Web/Events/dblclick) | native | Fires when the editor is double-clicked. |
| [MouseDown](https://developer.mozilla.org/en/docs/Web/Events/mousedown) | native | Fires when the mouse button is pressed down inside the editor. |
| [MouseUp](https://developer.mozilla.org/en/docs/Web/Events/mouseup) | native | Fires when a mouse button is released inside the editor. |
| [MouseMove](https://developer.mozilla.org/en/docs/Web/Events/mousemove) | native | Fires when the mouse is moved within the editor. |
| [MouseOver](https://developer.mozilla.org/en/docs/Web/Events/mouseover) | native | Fires when a new element is being hovered within the editor. |
| [MouseOut](https://developer.mozilla.org/en/docs/Web/Events/mouseout) | native | Fires when a element is no longer being hovered within the editor. |
| [MouseEnter](https://developer.mozilla.org/en/docs/Web/Events/mouseenter) | native | Fires when mouse enters the editor. |
| [MouseLeave](https://developer.mozilla.org/en/docs/Web/Events/mouseleave) | native | Fires when mouse leaves the editor. |
| [KeyDown](https://developer.mozilla.org/en/docs/Web/Events/keydown) | native | Fires when a key is pressed within the the editor. |
| [KeyPress](https://developer.mozilla.org/en/docs/Web/Events/keypress) | native | Fires when a key is pressed within the the editor. |
| [KeyUp](https://developer.mozilla.org/en/docs/Web/Events/keyup) | native | Fires when a key is released within the the editor. |
| [MouseOut](https://developer.mozilla.org/en/docs/Web/Events/mouseout) | native | Fires when an element is no longer being hovered within the editor. |
| [MouseEnter](https://developer.mozilla.org/en/docs/Web/Events/mouseenter) | native | Fires when the mouse enters the editor. |
| [MouseLeave](https://developer.mozilla.org/en/docs/Web/Events/mouseleave) | native | Fires when the mouse leaves the editor. |
| [KeyDown](https://developer.mozilla.org/en/docs/Web/Events/keydown) | native | Fires when a key is pressed within the editor. |
| [KeyPress](https://developer.mozilla.org/en/docs/Web/Events/keypress) | native | Fires when a key is pressed within the editor. |
| [KeyUp](https://developer.mozilla.org/en/docs/Web/Events/keyup) | native | Fires when a key is released within the editor. |
| [ContextMenu](https://developer.mozilla.org/en/docs/Web/Events/contextmenu) | native | Fires when the context menu is invoked within the editor. |
| [Paste](https://developer.mozilla.org/en/docs/Web/Events/paste) | native | Fires when a paste is done within within the the editor. |
| [Paste](https://developer.mozilla.org/en/docs/Web/Events/paste) | native | Fires when a paste is done within the editor. |
| [Init](#init) | core | Fires when the editor is initialized. |
| [Focus](#focus) | core | Fires when the editor is focused. |
| [Blur](#blur) | core | Fires when the editor is blurred. |
| [BeforeSetContent](#beforesetcontent) | core | Fires before contents being set to the editor. |
| [SetContent](#setcontent) | core | Fires after contents been set to the editor. |
| [GetContent](#getcontent) | core | Fires after the contents been extracted from the editor. |
| [PreProcess](#preprocess) | core | Fires when the contents in the editor is being serialized. |
| [PostProcess](#postprocess) | core | Fires when the contents in the editor is being serialized. |
| [BeforeSetContent](#beforesetcontent) | core | Fires before the content is set to the editor. |
| [SetContent](#setcontent) | core | Fires after the content is set to the editor. |
| [GetContent](#getcontent) | core | Fires after the content is extracted from the editor. |
| [PreProcess](#preprocess) | core | Fires when the contents in the editor are being serialized. |
| [PostProcess](#postprocess) | core | Fires when the contents in the editor are being serialized. |
| [NodeChange](#nodechange) | core | Fires when selection inside the editor is changed. |
| [Undo](#undo) | core | Fires when the contents has been undo:ed to a previous state. |
| [Redo](#redo) | core | Fires when the contents has been redo:ed to a previous state. |
| [Undo](#undo) | core | Fires when the contents have been reverted to a previous state. |
| [Redo](#redo) | core | Fires to revert the effects of an Undo event. |
| [Change](#change) | core | Fires when undo level is added to the editor. |
| [Dirty](#dirty) | core | Fires when editor contents is being considered dirty. |
| [Dirty](#dirty) | core | Fires when editor contents are being considered dirty. |
| [Remove](#remove) | core | Fires when the editor is removed. |
| [ExecCommand](#execcommand) | core | Fires after a command has been executed. |
| [PastePreProcess](#pastepreprocess) | [paste]({{ site.baseurl }}/plugins/paste/) | Fires when contents gets pasted into the editor. |
| [PastePostProcess](#pastepostprocess) | [paste]({{ site.baseurl }}/plugins/paste/) | Fires when contents gets pasted into the editor. |
| [PastePreProcess](#pastepreprocess) | [paste]({{ site.baseurl }}/plugins/paste/) | Fires when contents are pasted into the editor. |
| [PastePostProcess](#pastepostprocess) | [paste]({{ site.baseurl }}/plugins/paste/) | Fires when contents are pasted into the editor. |
> Native means that it's just a wrapped native browser event.
> Core means that it's a core specific event provided by the editor.
@@ -77,7 +77,7 @@ tinymce.init({
Gets fired when the editor is focused.
Here is an example off how to listen for focus events.
Here is an example of how to listen for focus events.
```js
tinymce.init({
@@ -92,9 +92,9 @@ tinymce.init({
### Blur
Gets fired when the editor is blurred but not when focus is moved to any of the editors UI components.
Gets fired when the editor is blurred but not when the focus is moved to any of the editors UI components.
Here is an example off how to listen for blur events.
Here is an example of how to listen for blur events.
```js
tinymce.init({
@@ -109,14 +109,14 @@ tinymce.init({
### BeforeSetContent
Gets fired before contents being inserted into the editor.
Gets fired before the contents are inserted into the editor.
#### Parameters
* **content** `String` - The HTML content that's being inserted into the editor.
* **selection** `Boolean` - True/False if the content was inserted at selection or replaced all contents.
Here is an example on how alter the contents before it's being inserted into the editor.
Here is an example of how to alter the contents before inserting into the editor.
```js
tinymce.init({
@@ -131,14 +131,14 @@ tinymce.init({
### SetContent
Gets fired after contents been inserted into the editor.
Gets fired after the content has been inserted into the editor.
#### Parameters
* **content** `String` - The HTML content that was inserted into the editor.
* **selection** `Boolean` - True/False if the content was inserted at selection or replaced all contents.
Here is an example on log the content that got inserted into the editor.
Here is an example of the content logged to the console in response to the SetContent event.
```js
tinymce.init({
@@ -153,13 +153,13 @@ tinymce.init({
### GetContent
This event gets fired when contents is being extracted from the editor.
This event gets fired when the content is being extracted from the editor.
#### Parameters
* **content** `String` - The HTML content that's being extracted from the editor.
Here is an example on how alter the contents before it's being extracted from the editor.
Here is an example of how to alter the contents before extracting it from the editor.
```js
tinymce.init({
@@ -174,13 +174,13 @@ tinymce.init({
### PreProcess
This event gets fired when the contents inside the editor is being serialized to a HTML string.
This event gets fired when the contents inside the editor are being serialized to an HTML string.
#### Parameters
* **node** `DOMElement` - A clone of the HTML element being serialized.
Here is an example on how to alter the contents before it's being extracted from the editor.
Here is an example of how to alter the contents before extracting it from the editor.
```js
tinymce.init({
@@ -195,13 +195,13 @@ tinymce.init({
### PostProcess
This event gets fired when the contents inside the editor have been serialized to a HTML string.
This event gets fired when the contents inside the editor have been serialized to an HTML string.
#### Parameters
* **content** `String` - The HTML content that's been extracted from the editor.
Here is an example on how to alter the contents when it's being extracted from the editor.
Here is an example of how to alter the contents when it's being extracted from the editor.
```js
tinymce.init({
@@ -223,7 +223,7 @@ This event gets fired when the selection inside the editor is changed.
* **element** `DOMElement` - HTML Element of selection.
* **parents** `[DOMElement]` - Array with parents of the element.
Here is an example on how to bind the NodeChange event. This event is fired when selection changes within the editor.
Here is an example of how to bind the NodeChange event. This event is fired when selection changes within the editor.
```js
tinymce.init({
@@ -238,13 +238,13 @@ tinymce.init({
### Undo
This event gets fired when undo is made by the user.
This event gets fired when a request to undo is made by the user.
#### Parameters
* **level** `Object` - Undo level object containing contents.
Here is an example on how to bind the Undo event.
Here is an example of how to bind the Undo event.
```js
tinymce.init({
@@ -259,13 +259,13 @@ tinymce.init({
### Redo
This event gets fired when redo is made by the user.
This event gets fired when a request to redo is made by the user.
#### Parameters
* **level** `Object` - Undo level object containing contents.
Here is an example on how to bind the Redo event.
Here is an example of how to bind the Redo event.
```js
tinymce.init({
@@ -282,7 +282,7 @@ tinymce.init({
This event gets fired when changes are made inside the editor that cause an undo level to be added.
Here is an example on how listen for editor changes.
Here is an example of how to listen for editor changes.
```js
tinymce.init({
@@ -297,7 +297,7 @@ tinymce.init({
### Dirty
This event gets fired when the editor is considered dirty. This state can be toggled of using: editor.setDirty(false).
This event gets fired when the editor is considered dirty. This state can be toggled by using: editor.setDirty(false).
```js
tinymce.init({
@@ -314,14 +314,14 @@ tinymce.init({
This event gets fired when the editor is removed from a textarea/div.
Here is an example on how alter the contents before it's being extracted from the editor.
Here is an example of how to detect when editor.remove() was called.
```js
tinymce.init({
selector: 'textarea',
init_instance_callback: function (editor) {
editor.on('GetContent', function (e) {
e.content += 'My custom content!';
editor.on('Remove', function (e) {
console.log('The editor has been removed');
});
}
});
@@ -329,20 +329,22 @@ tinymce.init({
### ExecCommand
This even is fired when a command like Bold/Italic etc is made by the editor.
This event is fired when a command like Bold/Italic etc is made by the editor.
#### Parameters
* **content** `String` - The HTML content that's being extracted from the editor.
* **command** `String` - The name of the command that was executed.
Here is an example on how alter the contents before it's being extracted from the editor.
Here is an example of how to detect when the bold feature was executed.
```js
tinymce.init({
selector: 'textarea',
init_instance_callback: function (editor) {
editor.on('GetContent', function (e) {
e.content += 'My custom content!';
editor.on('ExecCommand', function (e) {
if (e.command === 'mceToggleFormat' && e.value === 'bold') {
console.log('Bold was executed')
}
});
}
});
@@ -350,20 +352,21 @@ tinymce.init({
### PastePreProcess
This event is fired when contents from the clipboard is being processed by the paste process.
This event is fired when contents from the clipboard are being processed by the paste process.
#### Parameters
* **content** `String` - The HTML content that's being pasted into the editor.
Here is an example on how alter the contents being pasted into the editor.
Here is an example of how to detect when a paste operation is about to begin and how to modify the contents
```js
tinymce.init({
selector: 'textarea',
init_instance_callback: function (editor) {
editor.on('PastePreProcess', function (e) {
e.content += 'My custom content!';
e.content = e.content + ' foo';
console.log('The modified pasted content was: ', e.content);
});
}
});
@@ -377,7 +380,7 @@ This event is fired when contents from the clipboard have been processed by the
* **node** `DOMElement` - Node element being pasted.
Here is an example on how log the node being pasted.
Here is an example of how to log the node being pasted.
```js
tinymce.init({
@@ -388,32 +391,22 @@ tinymce.init({
});
}
});
``
## Editor Manager Events
Here is an example on how to bind a handler function to the click event.
```js
tinymce.on('AddEditor', function (e) {
console.log('An editor was added with id: ' + e.editor.id);
});
```
| Event | Description |
|-------------|----------------|
| [AddEditor](#addeditor) | Fires when a new editor instance is added. |
| [RemoveEditor](#removeeditor) | Fires when a editor instance is removed. |
| [RemoveEditor](#removeeditor) | Fires when an editor instance is removed. |
### AddEditor
This event gets fired when editor instances gets created and added to the EditorManager collection.
This event is fired when an editor instance is created and added to the EditorManager collection.
#### Parameters
* **editor** `tinymce.Editor` - Editor instance being added.
Here is an example on how to listen for editor instances being created.
Here is an example of how to listen for editor instances being created.
```js
tinymce.on('AddEditor', function (e) {
@@ -429,11 +422,10 @@ This event gets fired when editor instances are removed from the target textarea
* **editor** `tinymce.Editor` - Editor instance being removed.
Here is an example on how to listen for editor instances being removed.
Here is an example of how to listen for editor instances being removed.
```js
tinymce.on('RemoveEditor', function (e) {
console.log('Removed editor with id: ' + e.editor.id);
});
```
+2 -2
View File
@@ -23,10 +23,10 @@ ephox {
### Creating Custom Dictionary Files
One custom dictionary can be created for each language supported by the spell checker (see [supported languages]({{ site.baseurl }}/enterprise/check-spelling/index/)), as well as an additional "global" dictionary that contains words that are valid across all languages, such as trademarks.
One custom dictionary can be created for each language supported by the spell checker (see [supported languages]({{ site.baseurl }}/enterprise/check-spelling/)), as well as an additional "global" dictionary that contains words that are valid across all languages, such as trademarks.
A dictionary file for a particular language must be named with the language code of the language (see
[supported languages]({{ site.baseurl }}/enterprise/check-spelling/index/) for language codes), plus the suffix `.txt`:
[supported languages]({{ site.baseurl }}/enterprise/check-spelling/) for language codes), plus the suffix `.txt`:
E.g. `en.txt`, `en_gb.txt`, `fr.txt`, `de.txt` etc.
The "global" dictionary file for language-independent words must be called "global.txt".
+22 -9
View File
@@ -4,6 +4,19 @@ title: 12. System Requirements
description: Official TinyMCE browser support.
keywords: browser compatibility explorer ie safari firefox chrome edge
---
## Mobile Supported Platforms
We're pleased to introduce [TinyMCE mobile](https://www.tinymce.com/mobile), available in version 4.7.
TinyMCE mobile is designed to run on iOS Safari and Android Chrome. You'll find a streamlined interface while keeping the most common touch interactions easily to hand. We tested mobile on the following platforms:
{% include mobile_platform_compatibility.md %}
Please visit our [mobile page](https://www.tinymce.com/mobile) to download the self-hosted package. If you're using TinyMCE Cloud, mobile is available in the `dev` branch.
If you use other platforms and encounter bugs, please let us know in the [TinyMCE issue tracker](https://github.com/tinymce/tinymce/issues).
For further information on TinyMCE mobile setup and configuration, please visit [TinyMCE mobile documentation]({{ site.baseurl }}/mobile).
## Browser Compatibility
@@ -16,15 +29,15 @@ Since TinyMCE version 4.6.0 Internet Explorer 8-10 is no longer supported, if yo
Please use the [issues tracker on GitHub](https://github.com/tinymce/tinymce/issues) to submit bugs on the listed browsers only.
|Browser | Windows | Mac | GNU/Linux |
|:------:|:-------:|:---:|:---------:|
|Chrome | YES | YES | YES |
|Firefox | YES | YES | YES |
|Edge | YES | N/A | N/A |
|IE 11 | YES | N/A | N/A |
|IE 10 | NO | N/A | N/A |
|IE 9 | NO | N/A | N/A |
|IE 8 | NO | N/A | N/A |
|Safari | N/A | YES | N/A |
|--------|---------|-----|-----------|
|Chrome | YES | YES | YES |
|Firefox | YES | YES | YES |
|Edge | YES | N/A | N/A |
|IE 11 | YES | N/A | N/A |
|IE 10 | NO | N/A | N/A |
|IE 9 | NO | N/A | N/A |
|IE 8 | NO | N/A | N/A |
|Safari | N/A | YES | N/A |
TinyMCE fully supports the most recent version of all supported browsers listed above. If vendors offer an Extended Support Release (e.g. Firefox) we also officially support the latest ESR from each vendor. As each browser vendor releases new major versions (e.g. Chrome 61 vs Chrome 62) we will provide support for the prior major version for 60 days after the prior release is superseded.
+1 -7
View File
@@ -123,12 +123,6 @@ Below are the toolbar items currently supported, with any plugins/configuration
During our initial QA, we tested mobile on the following platforms. If you use other platforms and encounter bugs, please let us know in the [TinyMCE issue tracker](https://github.com/tinymce/tinymce/issues).
| OS | Browser | Device |
|-----------|---------|--------------|
| Android 8 | Chrome | Mobile phone |
| Android 7 | Chrome | Mobile phone |
| Android 6 | Chrome | Mobile phone |
| iOS11 | Safari | iPhone/iPad |
| iOS10 | Safari | iPhone/iPad |
{% include mobile_platform_compatibility.md %}
> To shape the future of mobile editing, [complete our survey](https://docs.google.com/forms/d/e/1FAIpQLSdWamU5HsZtv-SPqGRyu6Ql1zLqlrCQFP1vSrzx1oHikMFvlw/viewform) to have your say.