PDA

View Full Version : قرار دادن متن در ckeditor با javascript



yekta64
دوشنبه 28 دی 1388, 13:20 عصر
سلام دوستان
من براي قر ار دادن يه رشته در ckeditor از رشته تابع جاوااسكريپت زير استفاده مي كنم كه منتها جواب نمي ده:




window.document.forms['form1'].elements[گtxtTitle'].value = 'str'


البته اين كد براي درج يه رشته توي يه تكس باكس معمولي هيچ مشكلي نداره ولي نمي تونه توي ckeditor يه رشته رو درج كنه به نظر شما مشكل چيه؟

Chabok
دوشنبه 28 دی 1388, 13:39 عصر
با سلام

تا به حال 3 بار تاپیک با این موضوع ایجاد کرده اید . در صورت تکرار ... http://forum1.free-offline.com/images/smilies/1_free%20%2873%29.gif

دلیل این که این کار روی ادیتور جواب نمی دهد این است که :
ادیتور در سمت کلاینت مانند یک textbox یک عنصر نیست که ویژگی value داشته باشد .

هنگام اجرا سمت کلاینت این ادیتور بصورت مجموعه ای از عناصر است . یه همچین چیزی :


<span class="cke_browser_gecko"><span class="cke_wrapper cke_ltr"><table class="cke_editor" border="0" cellpadding="0" cellspacing="0"><tbody><tr style="-moz-user-select: none;"><td id="cke_top_editor2" class="cke_top"><div class="cke_toolbox"><span id="cke_87" class="cke_toolbar"><span class="cke_toolbar_start"></span><span class="cke_toolgroup"><span class="cke_button"><a id="cke_88" class="cke_off cke_button_bold" href="javascript:void('Bold')" title="Bold" tabindex="-1" hidefocus="true" onblur="this.style.cssText = this.style.cssText;" onkeydown="return CKEDITOR.ui.button._.keydown(59, event);" onfocus="return CKEDITOR.ui.button._.focus(59, event);" onclick="CKEDITOR.tools.callFunction(75, this); return false;"><span class="cke_icon"></span><span class="cke_label">Bold</span></a></span><span class="cke_button"><a id="cke_89" class="cke_off cke_button_italic" href="javascript:void('Italic')" title="Italic" tabindex="-1" hidefocus="true" onblur="this.style.cssText = this.style.cssText;" onkeydown="return CKEDITOR.ui.button._.keydown(60, event);" onfocus="return CKEDITOR.ui.button._.focus(60, event);" onclick="CKEDITOR.tools.callFunction(76, this); return false;"><span class="cke_icon"></span><span class="cke_label">Italic</span></a></span></span><span class="cke_separator"></span><span class="cke_toolgroup"><span class="cke_button"><a id="cke_90" class="cke_off cke_button_numberedlist" href="javascript:void('Insert/Remove Numbered List')" title="Insert/Remove Numbered List" tabindex="-1" hidefocus="true" onblur="this.style.cssText = this.style.cssText;" onkeydown="return CKEDITOR.ui.button._.keydown(61, event);" onfocus="return CKEDITOR.ui.button._.focus(61, event);" onclick="CKEDITOR.tools.callFunction(77, this); return false;"><span class="cke_icon"></span><span class="cke_label">Insert/Remove Numbered List</span></a></span><span class="cke_button"><a id="cke_91" class="cke_off cke_button_bulletedlist" href="javascript:void('Insert/Remove Bulleted List')" title="Insert/Remove Bulleted List" tabindex="-1" hidefocus="true" onblur="this.style.cssText = this.style.cssText;" onkeydown="return CKEDITOR.ui.button._.keydown(62, event);" onfocus="return CKEDITOR.ui.button._.focus(62, event);" onclick="CKEDITOR.tools.callFunction(78, this); return false;"><span class="cke_icon"></span><span class="cke_label">Insert/Remove Bulleted List</span></a></span></span><span class="cke_separator"></span><span class="cke_toolgroup"><span class="cke_button"><a id="cke_92" class="cke_off cke_button_link" href="javascript:void('Link')" title="Link" tabindex="-1" hidefocus="true" onblur="this.style.cssText = this.style.cssText;" onkeydown="return CKEDITOR.ui.button._.keydown(63, event);" onfocus="return CKEDITOR.ui.button._.focus(63, event);" onclick="CKEDITOR.tools.callFunction(79, this); return false;"><span class="cke_icon"></span><span class="cke_label">Link</span></a></span><span class="cke_button"><a id="cke_93" class="cke_off cke_button_unlink" href="javascript:void('Unlink')" title="Unlink" tabindex="-1" hidefocus="true" onblur="this.style.cssText = this.style.cssText;" onkeydown="return CKEDITOR.ui.button._.keydown(64, event);" onfocus="return CKEDITOR.ui.button._.focus(64, event);" onclick="CKEDITOR.tools.callFunction(80, this); return false;"><span class="cke_icon"></span><span class="cke_label">Unlink</span></a></span></span><span class="cke_separator"></span><span class="cke_toolgroup"><span class="cke_button"><a id="cke_94" class="cke_off cke_button_about" href="javascript:void('About CKEditor')" title="About CKEditor" tabindex="-1" hidefocus="true" onblur="this.style.cssText = this.style.cssText;" onkeydown="return CKEDITOR.ui.button._.keydown(65, event);" onfocus="return CKEDITOR.ui.button._.focus(65, event);" onclick="CKEDITOR.tools.callFunction(81, this); return false;"><span class="cke_icon"></span><span class="cke_label">About CKEditor</span></a></span></span><span class="cke_toolbar_end"></span></span></div><a title="Collapse Toolbar" id="cke_95" class="cke_toolbox_collapser" onclick="CKEDITOR.tools.callFunction(82)"></a></td></tr><tr><td title="Rich text editor, editor2" role="region" id="cke_contents_editor2" class="cke_contents" style="height: 120px;"><iframe title=" " role="region" style="width: 100%; height: 100%;" tabindex="-1" allowtransparency="true" frameborder="0"></iframe></td></tr><tr style="-moz-user-select: none;"><td id="cke_bottom_editor2" class="cke_bottom"><div id="cke_path_editor2" class="cke_path"><span class="cke_empty">&nbsp;</span></div><div class="cke_resizer" title="Drag to resize" onmousedown="CKEDITOR.tools.callFunction(74, event)"></div></td></tr></tbody></table><style>.cke_skin_kama{visibility:hidden;}</style></span></span>

اگر خود ادیتور متداً append یا مثلاً متد دیگری داشته باشد می توانید چنین عملی را انجام دهید .
وگرنه بصورت معمولی کار جالبی از آب در نمیاد .

موفق باشید .

yekta64
سه شنبه 29 دی 1388, 00:25 صبح
سلام ممنون دوست عزیر ولی من تاپیکی با این مضموم رو تکرار نکرده بودم
خوب چطور بفهمم ادیتور این متدی رو که گفتید داره یا نه ؟
اصلا راهی وجود نداره که با استفاده از جاوا اسکریپت یه متن رو در ادیتور قرا داد؟
اگه ادیتور در سمت کلاینت یه تکس باکس نیست پس چطور میشه بدونه استفاده از کدهای جاوا اسکریپت یه رشته رو در ادیتور قرار داد به این صورت مثلا در رویداد یه دکمه بنویسم:


txtTitle.Text='str'

مرسی

Chabok
سه شنبه 29 دی 1388, 11:17 صبح
لیست API های CKEditor :
http://docs.cksource.com/ckeditor_api/symbols/CKEDITOR.html
http://docs.cksource.com/ckeditor_api/symbols/CKEDITOR.editor.html

متدهای بدرد بخور ویرایش متن که من پیدا کردم :


insertHtml(data)
Inserts HTML into the currently selected position in the editor.

insertText(text)

insertElement(element)
Inserts an element into the currently selected position in the editor.

setData(data, callback)
Sets the editor data. The data must be provided in raw format (HTML). Note: This's an asynchronous method, the {@param callback} function should be relied on if you want to interact with the editor after data is fully loaded.

getData()
Gets the editor data. The data will be in raw format. It is the same data that is posted by the editor

getSelection()
Gets the current selection from the editing area when in WYSIWYG mode.

getText()

yekta64
سه شنبه 29 دی 1388, 11:48 صبح
سلام مرسي
چطور بايد از اين متدها استفاده كنم ؟
ممنون ميشم بيشتر توضيح بديد

Chabok
سه شنبه 29 دی 1388, 22:52 عصر
با سلام

اگر لینک ها را باز می کردید زیر هر متد مثال هم داشت .

CKEDITOR.instances.editor1.insertHtml( '<p>This is a new paragraph.</p>' );editor1 نام Textbox است .

yekta64
یک شنبه 08 فروردین 1389, 14:43 عصر
سلام
دوستان اگه بخوايم يه آدرس يه سايت به صورت لينك به طور پيش فرض توي اديتور نوشته بشه البته با فشردن يه دكمه بايد چكار كرد؟؟؟؟؟

Chabok
شنبه 14 فروردین 1389, 13:23 عصر
با سلام

توسط همان کد قبلی که معرفی شد یعنی insertHtml یک لینک اضافه کنید .
می توانید این کار را توسط یک button ساده انجام دهید .


<button type="button" onclick="CKEDITOR.instances.editorname.insertHtml( '<a href=\'http://yahoo.com\'>Yahoo! Link</a>' );">InsertLink</button>

yekta64
شنبه 14 فروردین 1389, 13:42 عصر
با سلام

توسط همان کد قبلی که معرفی شد یعنی insertHtml یک لینک اضافه کنید .
می توانید این کار را توسط یک button ساده انجام دهید .


<button type="button" onclick="CKEDITOR.instances.editorname.insertHtml( '<a href=\'http://yahoo.com\'>Yahoo! Link</a>' );">InsertLink</button>


سلام
مرسي دوست عزيز
راستش كدي كه شما گفتيد رو نوشتم منتها يه مشكلي هست اينكه چرا وقتي موس رو روي Yahoo link مي برم شكل دست نميشه و نمي تونم به سايت yahoo برم؟؟؟؟

Chabok
شنبه 14 فروردین 1389, 14:08 عصر
چون هنوز در محیط ادیتور هستید
در محیط ادیتور لینک ها قابل کلیک نیستند .

ولی اگر محتوای ادیتور را روی صفحه چاپ کنید لینک ها را می توانید کلیک کنید .

yekta64
شنبه 14 فروردین 1389, 14:30 عصر
چون هنوز در محیط ادیتور هستید
در محیط ادیتور لینک ها قابل کلیک نیستند .

ولی اگر محتوای ادیتور را روی صفحه چاپ کنید لینک ها را می توانید کلیک کنید .

مرسي
اگه محتواي اديتور به ايميل كاربر ارسال بشه لينك قابليت كليك كردن رو داره؟؟؟

Chabok
شنبه 14 فروردین 1389, 15:10 عصر
مرسي
اگه محتواي اديتور به ايميل كاربر ارسال بشه لينك قابليت كليك كردن رو داره؟؟؟
بله . در این صورت لینک قابل کلیک است .

yekta64
یک شنبه 15 فروردین 1389, 09:09 صبح
بي نهايت ممنون از توضيحاتتون
يه سوال ديگه اگه بخوام محتواي يه تمپليت html رو توي اديتور بذارم بايد چكار كنم؟؟؟

مثلا يه تمپليت به صورت زير دارم:
****
سلام خانم / آقاي x
با تشكر از حسن انتخاب شما در سايت ما
روي لينك زير كليك نمايد:

link
******
اين تمپليت با نام A.htm ذخيره شده.

ممنون ميشم من رو راهنمايي كنيد.
مرسي