개체를 처리하는 플러그인을 만들었지 만 해결하려는 문제는 개체가 첫 번째 항목 인 경우 개체 앞에 내용을 삽입 할 수 없다는 것을 나타 냈습니다. 나는 편집기에 코드 블록을 삽입 내 플러그인을 사용 Can't move cursor behind non-editable element (or placeholder) in CKEditor
가 :
<div contenteditable="false">
<img src="someimage.jpg" />
<p>
Some text
<span>Some subtext</span>
</p>
<img src="someStaticImage.jpg" />
</div>
당신은 또한 display: inline-block;
스타일을 추가 할 수 있습니다 그것은이 버그 리포트처럼 보이는
이 문제에 관한 것입니다 원하는 경우 (아래 설명 참조) :
내 테스트 결과, 백 ar을 사용하여 개체 앞에 내용을 넣을 수없는 것 같습니다. 행을 추가 할 수 있지만 해당 행의 화살표를 뒤로 이동하고 홈 키를 누르면 개체 앞에 입력 할 수 있습니다. 왼쪽 상단 모서리에서 마우스로 클릭하면 객체 앞에 내용을 추가 할 수도 있습니다.
두 방법 모두 <div>
이기 때문에 개체를 다음 줄로 밀어 넣으므로 개체를 첫 번째 행에 머물게하려면 div 스타일을 display: inline-block;
으로 변경할 수 있습니다. 대신 객체 <div>
을 <span>
으로 만들었지 만 객체의 일부를 편집 할 수있게되었습니다.
백 스페이스을 사용하여 개체를 삭제할 수는 없지만 개체를 클릭하여 선택한 다음 삭제할 수 있습니다.
내가 구글 크롬은 문제의 무리가 승리 7. 파이어 폭스 (20)와 IE 9 위에서 설명한 정보 확인 : HTML의 블록이 플러그인 삽입되면
의 contenteditable="false"
속성이 밖으로 제거됩니다.
소스 모드에서 CkEditor에 해당 블록 블록을 붙여 넣으면 어떻게 작동하는지 보려고했습니다. contenteditable="false"
속성은 제거되지 않았지만 전체 컨텐트 영역은 편집 할 수 없게되었습니다.
내 테스트에서 CkEditor 3.6.1을 사용 중이므로 CkEditor 4.X에서 문제가되지 않을 수 있습니다. 정보
여기
ContentEditable, Image and Chrome
추가 :
이 버그 보고서는 내가 크롬을 사용하여 콘텐츠 영역에서 아무것도 할 수없는 존재로 발생하는 문제에 대해 것 같다,이 보고서는 버전 3.x를 나타냅니다 도움이 될 수 CKSource에서 플러그인 :
Magic Line
설명 :
이 플러그인은 당신이 할 수있는 C 일반적으로 도달 할 수없는 곳에 새로운 단락을 공간으로 재연하십시오. 예를 들어, 문서 맨 앞에있는 표 위에 있습니다.
여기 에디터에 내용을 삽입 내 플러그인, 그것은 당신이 가진 문제가 해결되지 않습니다,하지만 당신은 플러그인에 기능을 추가하는 데 사용할 수 있습니다. 나는 플러그인을 만들지 않은 사람이 이것을 발견하고 그것을 시도하고 싶을 경우를 대비하여 모든 지침을 쓸 것이다. 여기
은 ckeditor/plugins/cwmarinsertsnippet/plugin.js
파일에 들어가는 코드입니다 : /**
* Plugin to insert the contents of an element into the editor content area.
*/
// Register the plugin with the editor. cwmarinsertsnippet
// http://docs.cksource.com/ckeditor_api/symbols/CKEDITOR.plugins.html
CKEDITOR.plugins.add('cwmarinsertsnippet',
{
// The plugin initialization logic goes inside this method.
// http://docs.cksource.com/ckeditor_api/symbols/CKEDITOR.pluginDefinition.html#init
init: function(editor)
{
// Define an editor command that grabs the content of an element and inserts it into the content area.
// http://docs.cksource.com/ckeditor_api/symbols/CKEDITOR.editor.html#addCommand
editor.addCommand('cwMarInsertSnippet',
{
// Define a function that will be fired when the command is executed.
// http://docs.cksource.com/ckeditor_api/symbols/CKEDITOR.commandDefinition.html#exec
exec : function(editor)
{
// Create an element based on a native DOM element.
var codesnippet = new CKEDITOR.dom.element(document.getElementById('resmar'));
//alert(codesnippet.getHtml());
// Insert the element content into the document.
// http://docs.cksource.com/ckeditor_api/symbols/CKEDITOR.editor.html#insertHtml
editor.insertHtml(codesnippet.getHtml());
}
});
// Create a toolbar button that executes the plugin command.
// http://docs.cksource.com/ckeditor_api/symbols/CKEDITOR.ui.html#addButton
editor.ui.addButton('CwMarInsertSnippet',
{
// Toolbar button tooltip.
label: 'Insert Search Box',
// Reference to the plugin command name.
command: 'cwMarInsertSnippet',
// Button's icon file path.
icon: this.path + 'images/buttonicon.gif'
});
}
});
그것은으로 설정 파일에 추가해야합니다
:
config.extraPlugins = 'cwmarinsertsnippet';
와 버튼을 볼 수 있도록하기 위해, 버튼 이름 "CwMarInsertSnippet"을 설정 툴바 항목에 추가해야합니다 :
CKEDITOR.config.toolbar_XXXX
[
Snip...
{ name: 'tools', items : [ 'About','CwMarInsertSnippet' ] },
... End Snip
];
플러그인의 버튼은 13px X 13px (CkEditor 3.X의 경우 버전 4.X에 대해서는 확실하지 않음) 여야합니다. 그것은 여기에 배치됩니다 : (이 경로는 정말 어디서든 당신이 원하는 수 있습니다)
ckeditor/플러그인/cwmarinsertsnippet/이미지
이름은 플러그인 코드의 끝에서 editor.ui.addButton
기능에 사용 된 것과 일치해야합니다.당신이 원하는 경우
<div id ="resmar">
<div contenteditable="false">
<img src="someimage.jpg" />
<p>
Some text
<span>Some subtext</span>
</p>
<img src="someStaticImage.jpg" />
</div>
</div>
당신은 또한 display: inline-block;
스타일을 추가 할 수 있습니다 : 여기
는 CkEditor 사용중인 페이지에 추가 할 수있는 코드의 예 <div style="display:inline-block" contenteditable="false">
컨테이너 요소는 페이지에 나타나지 않아야 스타일링으로 숨길 수 있습니다.
기본적으로, 당신이 원하는 무엇이든 할 수있다 대상 ID 물론
<div id ="resmar">
Content to be inserted.
</div>
플러그인 이름과 요소 ID와 요소 내부에 삽입 할 내용을 넣어.
블록을 삽입하기 전에 빈 div를 삽입 한 경우 상단에있는 경우에도 삽입하기 전에 커서를 놓을 수 있습니다. – codewaggle
좋은 생각이지만 CKEditor는 빈 요소 안에 을 자동으로 삽입하므로 요소 위에 요소가 만들어 지므로 원하지 않는 요소가 만들어집니다. 또한 이미지와 같이 캐럿이 나타나도록 요소의 오른쪽을 클릭 할 수 있기를 원합니다. – Ratzor
자세한 내용을 제공해 주시겠습니까? 어떤 버전의 CkEditor를 사용하고 있습니까? 4 인 경우 표준 또는 인라인 방법을 사용하고 있습니까? 보다 완벽한 코드 샘플을 포함 시키면 도움이 될 것입니다. 질문에 대한 모든 내용이 담긴 '
'입니다. ''에서 사용되는 모든 스크립트. 플러그인 코드. 플러그인 외부에서 오브젝트를 추가하는 것처럼 보이므로 플러그인은 무엇을합니까? 나는 편집자 (CkEditor 3.x)에 블록을 삽입하는 플러그인을 만들었으므로, 플러그인의 일부로 그것을 할 수있다. – codewaggle