0

我目前正在使用 FCKEditor,并且我正在尝试复制堆栈溢出如何准确地显示您的帖子在您键入时在 HTML 中的外观。我的 FCKEditor 创建得很好,我只是不知道创建后如何访问编辑器数据。我想要做的是从编辑器中获取 html,然后将其放入<p id="inputText"></p>. 尝试使用 $("#fckEdtr") 使用 jQuery 访问它不起作用,我希望这是因为它是使用 javascript 动态创建的。我知道 FCKeditor JavaScript API 中的 IsDirty() 方法,但我还没有看到任何关于如何获取编辑器的当前实例并使用该方法的可靠示例。任何人都可以帮忙吗?我的代码如下:

<html>
<head>
<title>FCKeditor Test</title>
<script type="text/javascript" src="fckeditor/fckeditor.js"></script>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript"> 
    $(document).ready(function() {
          ...code to output editor data as user types
    }); 
</script>
</head>
<body>
<form>
<script type="text/javascript">
    var oFCKeditor = new FCKeditor('fckEdtr');
    oFCKeditor.BasePath = "./fckeditor/";
    oFCKeditor.ToolbarSet = 'Default';
    oFCKeditor.Create();
</script><br/><br/>
<input type="submit" value="Post" />
<p id="inputText">
</p>
</form>
</body>
</html>
4

2 回答 2

1

我刚刚在关于 SO 的另一个问题中找到了答案:

如何在 ASP.Net 站点中启用 FCKeditor 的实时预览?

此外,当我使用 div 元素而不是段落元素时,它可以工作。这是我对任何可能有帮助的人的最终工作代码:

<html>
<head>
<title>FCKeditor - Sample</title>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="fckeditor/fckeditor.js"></script>
<script type="text/javascript">         
    function FCKeditor_OnComplete( oFCKeditor )
    {  
         oFCKeditor.Events.AttachEvent( 'OnSelectionChange', function() {        
              document.getElementById("postText").innerHTML = 
                    oFCKeditor.GetHTML(true); 
         }) ;
    }
</script>
</head>
<body>
<form method="post" action="process.php">
<script type="text/javascript">
    var oFCKeditor = new FCKeditor('fckEdtr');
    oFCKeditor.BasePath = "./fckeditor/";
    oFCKeditor.ToolbarSet = 'Custom' ;
    oFCKeditor.Create();
</script><br/><br/>
<input type="submit" value="Post" />
<div id="postText">
</div>
</form>
</body>
</html>
于 2009-05-06T19:18:03.093 回答
1

很高兴您已经找到了答案,但我想知道在处理所见即所得编辑器时为什么需要预览窗口。我的猜测是,您在编辑器中获得的外观与结果外观不同,因为后者应用了 CSS。如果我错了,请忽略下面的建议。

如果这种情况,您可能会考虑将 CSS 中最相关的部分复制到 \fckeditor\editor\css\fck_editorarea.css 以便在编辑器窗口中应用它们。当然,有时你确实想要不同。例如,剧透应该在发布时隐藏,但在编辑器中可见。

于 2009-05-07T23:08:13.453 回答