1

FCKeditor ウィンドウが 1 つだけある Web ページを開くと、次のインスタンスが表示されます。

i = FCKeditorAPI.GetInstance( "txtText" )

これは機能します。私も許可されています:

i.GetHTML() #=> <div class=".... etc., correct output

でもやってみると

i.SetHTML( "<h1>Quux</h1>" )

私は得る:

[Exception... "Security error" code: "1000" nsresult: "0x805303e8 (NS_ERROR_DOM_... etc. ]

以前は SetHTML() を使用して FCKeditor ウィンドウの内容を変更できたのではないかと思いますが、完全にはわかりません。何をすべきか?

コメントに応えて、私のHTMLは

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="cs" lang="cs">

<head>
<meta http-equiv="Content-Type" content="text/html; charset=windows-1250" />
<meta http-equiv="Content-language" content="cs" />
<meta http-equiv="expires" content="-1" />
<meta http-equiv="pragma" content="no-cache" />
<meta http-equiv="cache-control" content="private" />
<title>Foo | Bar | WebMaker | FOO.CZ</title>
<style type="text/css" media="screen">/*<![CDATA[*/@import url(http://webmaker.ooo.cz/_design/style.css);/*]]>*/</style>
<script type="text/javascript" src="http://webmaker.ooo.cz/common.js"></script>
</head>

<body>
<div id="header">
        <span><a href="http://webmaker.ooo.cz/logout.aspx">Logout</strong></span>
</div>
    <div id="main">

        <div id="content">
            <div id="tabmenu">

            </div><!-- /tabmenu -->
            <dif id="tabcontent">
              <form name="_ctl2" method="post" action="detail.aspx?article=14599" id="_ctl2">
<input type="hidden" name="__EVENTTARGET" id="__EVENTTARGET" value="" />
<input type="hidden" name="__EVENTARGUMENT" id="__EVENTARGUMENT" value="" />
<input type="hidden" name="__VIEWSTATE" id="__VIEWSTATE"     value="/wEPDwULLTE2MTEzz0iZG9.....reallllly..looong...strin......6qKb5or30J5DCLKTCaFR/xc8TPHb9A=" />

<script type="text/javascript">
  <!--
      var theForm = document.forms['_ctl2'];
      if (!theForm) {
          theForm = document._ctl2;
      }
      function __doPostBack(eventTarget, eventArgument) {
          if (!theForm.onsubmit || (theForm.onsubmit() != false)) {
              theForm.__EVENTTARGET.value = eventTarget;
              theForm.__EVENTARGUMENT.value = eventArgument;
              theForm.submit();
          }
      }
   // -->
</script>

<input type="hidden" name="__EVENTVALIDATION" id="__EVENTVALIDATION" value="/wEWEQ...vsyXR4=" />
    <div class="data">
    <fieldset>
<legend>Text článku</legend>

<div><input type="hidden" id="txtText" name="txtText" value="FCK editor window contents here." /><input type="hidden" id="txtText___Config" value="HtmlEncodeOutput=true" /><iframe id="txtText___Frame" src="http://webmaker.ooo.cz/_wysiwyg/editor/fckeditor.html?InstanceName=txtText&amp;Toolbar=WebMaker" width="100%" height="400px" frameborder="no" scrolling="no"></iframe></div>  
<input type="button" onclick="GetWordsCount('txtText___Frame')" value="Zobrazit počet slov v článku" />
    </fieldset>

    <!-- There are some more fieldsets here and a submit button. -->

                  </div><!-- .data -->
              </form>
            </div><!-- tabcontent -->
</div><!-- /main -->
</body>
</html>
4

3 に答える 3

1

FCKeditor のメソッドは、エディット コントロールのコンテンツを置き換えるための呼び出しにSetHTML依存しています。document.write残念ながらdocument.write、Firefox の Web コンソールからは機能しません。

これは既知のバグです: Scratchpad ウィンドウ内で document.write を使用すると、Web コンソールで「Security error undefined」が表示されます

エラーには Scratchpad と表示され、エラー メッセージは異なりますが、同じ問題です。David Chan (Mozilla Security Researcher) からの次のコメントに注意してください。

これは、サンドボックスで WebConsole / ScratchPad を実行することによる別のバグのようです。

おそらく過去にこれができたのを覚えている理由は、それが FireBug で機能し、Chrome でも機能するからです。おそらく、FCKeditor コントロールを操作するときに、これらの環境のいずれかを過去に使用したことがあるでしょう。

于 2013-07-02T17:25:15.437 に答える