1

CKEditor を MVC アプリケーションに統合しようとしています。私が本当にしなければならないことは、私が言える限りです。

以下をマスター ページに追加します。

<script type="text/javascript" src="../../ckeditor/ckeditor.js"></script>
<script type="text/javascript" src="../../ckeditor/adapters/jquery.js"></script>
<script type="text/jscript" src="../../Scripts/jquery-1.3.2.js"></script>

それから私の見解について。次のコードがあります。

<script type="text/javascript">        
    $(document).ready(function() { $('#news').ckeditor(); });
</script>

<fieldset>
    <legend>Fields</legend>
        <p>
            <label for="title">Title:</label>
            <%=Html.TextBox("title")%>
            <%= Html.ValidationMessage("title", "*") %>
        </p>
        <p>
            <label for="news">News:</label>
            <%=Html.TextArea("news")%>
            <%= Html.ValidationMessage("news", "*") %>
        </p>
        <p>
            <label for="publishedDate">Publication Date:</label>
            <%= Html.TextBox("publishedDate") %>
            <%= Html.ValidationMessage("publishedDate", "*") %>
        </p>
        <p>
            <input type="submit" value="Create" />
        </p>
</fieldset>

これを実際にポストバックに関して何かを行うようにしようとしているわけではないことに注意してください。そもそも実際にレンダリングするだけです。誰かが私が間違っていることを正確に指摘できますか?

ああ、それがVSに役立つ場合は、次の警告も表示されます。

警告 1 JScript IntelliSense の更新エラー: ..Cut to Protect the innocent..\ckeditor\ckeditor.js: 'getFirst()' is null or not an object @ 15:180 ..Cut to Protect the innocent..\Views\ Shared\Admin.Master 1 1 ilaTraining

4

3 に答える 3

1

この行$('.test').ckeditor();で、css class を持つ要素に ckeditor を適用しようとします.test。しかし、あなたの見解では、どの入力もこのクラスを持っていません。

自分TextAreaを ckeditor にしたいので、このオーバーロードでクラスを追加する必要があると仮定します:

<%= Html.TextArea("news", new { @class = ".test" }) %>

または、id "news" で TextArea を参照することもできます (これは、式 で入力に指定した ID であるためですHtml.TextArea("news"))。したがって、次のコードも機能するはずです。

$('#news').ckeditor();

ckeditor の jQuery アダプターを使用しようとしているため、jQuery がロードされた後に ckeditor をロードする必要があります。したがって、スクリプト インクルードの正しい順序は次のようになります。

<script type="text/javascript" src="<%= Url.Content("~/Scripts/jquery-1.3.2.js %>"></script>
<script type="text/javascript" src="<%= Url.Content("~/ckeditor/ckeditor.js %>"></script>
<script type="text/javascript" src="<%= Url.Content("~/ckeditor/adapters/jquery.js %>"></script>

補足として、Url.ContentASP.NET MVC を使用するときにスクリプトまたは css を含める場合は、ヘルパーを使用する必要があります。

于 2012-10-07T15:13:56.667 に答える
0

注目すべき点:

エディターがロードされるかどうかを確認するためだけに、jQueryアダプターを使用せずに試してください。

削除する:

<script type="text/javascript" src="../../ckeditor/adapters/jquery.js"></script>

交換:

<script type="text/javascript">        
    $(document).ready(function() { $('#news').ckeditor(); });
</script>

と:

<script type="text/javascript">        
    $(document).ready(function() { CKEDITOR.replace( 'news' ); });
</script>

バグのあるjQueryアダプターのリリースがいくつかありましたが、別のCKEditorバージョンを試してみてください。


より新しいバージョンのjQueryを使用してみることができます。使用しているバージョン(jquery-1.3.2)は、2009年2月にリリースされました。3年半前のものです。


問題はすべてのブラウザで発生しますか?

于 2012-10-08T04:38:26.117 に答える
0

ID で要素を参照している場合は、次の#ように使用する必要があります。$('#news').ckeditor();

ID セレクタークラス セレクターの jQuery API の違いを参照してください。

于 2012-10-07T15:29:02.967 に答える