سؤال

كيفية تغيير الإعداد الافتراضي لمحرر ACT HTML؟ أرغب في تحميل المحرر باستخدام الزر الغامق المحدد على سبيل المثال أو باتجاه rtl بدلاً من ltr بشكل افتراضي.
كيف يمكنني تنفيذ ذلك؟لقد تجاوزت FillTopToolbar() طريقة لإضافة أزرار مخصصة ولكني لا أعرف كيفية تغيير الإعدادات الافتراضية.
نظرًا لأنه تم تحديد ltr الافتراضي، أريد تغييره إلى rtl.

هل كانت مفيدة؟

المحلول

لقد قمت بتحرير إجابتي لتصحيح بعض الأشياء

لا يوفر HTMLEditor طريقة لتعيين حالة تلك الأزرار باستخدام التعليمات البرمجية الموجودة على جانب الخادم.على الرغم من أنه يتم التهيئة على العميل باستخدام حدث Sys.Application.load.إذا قمت بتشغيل التعليمات البرمجية الخاصة بك بعد أدوات التهيئة الخاصة بها، ولكن قبل أن يتفاعل المستخدم مع واجهة المستخدم، فيمكنك بعد ذلك تعيين الخصائص التي تريد تعيينها في معالج الحدث هذا.

إليك الرمز الذي تحتاجه لتعيين الزر الغامق وحالات أزرار rtl.يمكنك أخذها من هنا إذا كنت تريد تغيير حالات الأزرار الأخرى:

// Attach a handler to the load event.
Sys.Application.add_load(myOnLoadLoader);

function myOnLoadLoader() {
    //This will run JUST after ALL code that was set to run during the load event has run
    window.setTimeout(myOnLoad, 0);
}

function myOnLoad() {
    var editor = $find('<% =editor.ClientID %>');
    var toolbar = editor.get_changingToolbar();
    var toolbarButtons = toolbar.get_buttons();
    for (var i = 0; i < toolbarButtons.length; i++) {
        var toolbarButton = toolbarButtons[i];
        if (toolbarButton instanceof AjaxControlToolkit.HTMLEditor.ToolbarButton.Rtl ||
        toolbarButton instanceof AjaxControlToolkit.HTMLEditor.ToolbarButton.Bold) {
            toolbarButton.set_activeEditPanel(editor.get_editPanel());
            toolbarButton.callMethod();
        }
    }
}

Sys (وبالتالي Sys.Application) هي مساحة اسم تأتي من ASP.Net AJAX javascript (الملف (الملفات) التي تتم إضافتها بفضل ScriptManager الذي تضيفه إلى صفحتك).إذا كنت تستخدم هذا، عليك التأكد من أن هذا الخط Sys.Application.add_load(myOnLoad); يتم تشغيله بعد تحميل ملفات ASP.Net AJAX.يمكنك القيام بذلك بطريقتين:

  1. أضف هذا البرنامج النصي في أسفل الصفحة من scriptManager.
  2. انقل البرنامج النصي الخاص بك إلى ملف JS منفصل، واستخدم ScriptManager لتحميله (مستحسن).

إذا قمت بنقل البرنامج النصي الخاص بك إلى ملف منفصل، ستلاحظ ذلك var editor = $find('<% =youreditor.ClientID %>'); لم يعد يعمل.وذلك لأن ملفات جافا سكريبت لا تقوم بتحليل علامات الخادم واستبدالها بقيمة جانب الخادم (كما تفعل صفحات aspx).لذا فإن الجزء الذي يمثل مشكلة هنا هو <% =youreditor.ClientID %>.

لإصلاح ذلك، إليك ما تفعله:

أضف هذا إلى علامة aspx الخاصة بك (في قسم الرأس):

<script language="javascript">
    var myEditorId = '<%= youreditor.ClientID %>';
</script>

لذلك يبدو الأمر كالتالي:

<head runat="server">
    <script language="javascript">
        var myEditorId = '<%= youreditor.ClientID %>';
    </script>
<title></title>
</head>

(إذا كنت تستخدم صفحة رئيسية، فما عليك سوى إضافة علامة البرنامج النصي أسفل ScriptManager في صفحتك)

وفي ملف JS الخاص بك، استبدل هذا

var editor = $find('<% =youreditor.ClientID %>');

مع هذا

var editor = $find(myEditorId);

نصائح أخرى

سوف تحتاج إلى القيام بذلك باستخدام CSS لأن عنصر تحكم المحرر لا يدعم rtl أصلاً.سيحدد CSS التالي الاتجاه إلى rtl -

div
{
    direction:rtl;
}

يمكن العثور على الأنماط الافتراضية لمحرر HTML في ملف Editor.css.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top