相关疑难解决方法(0)

javascript富文本编辑器

有几个(非常好的)富文本Web编辑器用Javascript编写(例如FCKeditor,YUI Texteditor和许多其他人).

但是我找不到任何关于如何构建这样一个组件的教程.可以解释高级别考虑因素(架构)和/或低级"关键"点中的更多细节(即为什么大多数编辑器都使用iFrame,如何处理键盘输入,如Ctrl-B,Ctrl -C选择文本时以及不选择文本时等)

我的主要动机是好奇心; 如果我今天必须开发这样一个编辑器,我不知道从哪里开始.

有没有人知道任何涵盖上述问题的教程(理想情况下,解释如何从头开始构建一个wysiwyg编辑器)?

javascript wysiwyg rte richtext rich-text-editor

31
推荐指数
2
解决办法
9499
查看次数

从用户选择的文本返回HTML

我有以下非常简单的html页面:

<html>
    <head>
    <script type="text/javascript">
        function alertSelection()
        {
            var selection = window.getSelection();
            var txt = selection.toString();
            alert(txt);
        }
    </script>
    </head>
    <body>
        This is <span style="background-color:black;color:white">the</span> text.
        <div style="background-color:green;width:30px;height:30px;margin:30px"
            onmouseover="alertSelection()">
    </body>
</html>
Run Code Online (Sandbox Code Playgroud)

当我选择整个第一行并将鼠标悬停在方格上时,我会收到"这是文本"的警报.

我如何解决此问题,以便不会从警报消息中删除span标记或任何其他选定的HTML?

编辑:我正在寻找如何从中获取完整的HTML window.getSelection().警报对话框就是我试图验证代码的方式.我只关心在Safari中工作.

javascript safari webkit textselection

18
推荐指数
2
解决办法
1万
查看次数

通过Javascript在浏览器中获取选定的HTML

我要求我的网络应用程序允许用户"仅打印选择".换句话说,用户选择文本和可能的图像,然后单击此选项.我已经看到了使用Javascript获取所选文本的示例,但是没有找到获取所选html本身的解决方案.

举个例子,如果我有这样的文件:

<html>
<head>
</head>
<body>
    <p>A bunch of text</p>
    <img src="someimage.jpg" />
    <p>Even more text</p>
</body>
</html>
Run Code Online (Sandbox Code Playgroud)

如果用户突出显示图像和第二段,我希望javascript返回:

<img src="someimage.jpg" />
<p>Even more text</p>
Run Code Online (Sandbox Code Playgroud)

这是可能的,如何去做呢?

编辑:我最终选择了一个名为Rangy的js库.

javascript

16
推荐指数
2
解决办法
2万
查看次数

所选文字的HTML

是否有跨浏览器方式来获取所选文本的HTML?

javascript

15
推荐指数
1
解决办法
1万
查看次数

获取所选文本的HTML源代码?

我有一个页面上有博客文章.人们可以选择本文的一部分,我想存储他们选择的部分,但不仅仅是屏幕上的文本,HTML源.

例如,屏幕显示;

Boerboel育种者协会于1983年在Senekal区成立.

完整代码是:

<p>
    The Boerboel Breeders Association was <strong>established in 1983</strong> in the Senekal district.
</p>
Run Code Online (Sandbox Code Playgroud)

所以我希望当有人选择"1983年在Senekal区成立"时,它会返回给我的源代码如下:

was <strong>established in 1983</strong> in the Senekal district
Run Code Online (Sandbox Code Playgroud)

我正在使用Javascript和jQuery.

html javascript jquery dom

9
推荐指数
0
解决办法
452
查看次数

如何在execCommand formatBlock'p'标签中添加类或id或CSS样式?

我想用来在我的contentEditable (自己的富文本编辑器)中execCommand('formatblock')选择带有<p>标签或<span>具有特定类或ID或任何CSS样式的行<div>.

document.execCommand('formatblock', false, 'p'>;
Run Code Online (Sandbox Code Playgroud)

如何在此代码中添加类或ID或CSS?

html javascript jquery contenteditable execcommand

6
推荐指数
2
解决办法
1万
查看次数

javascript:如何更改我的获取选择函数,以便不从选择中的第一个DOM元素中删除额外的空格?

更新:显然,我遇到的问题只会影响选择中的第一个元素.

JSFiddle:http://jsfiddle.net/NhQCR/

我的代码从网页上进行选择:

if (!window.TB) {
    TB = {};
}

TB.Selector = {};
// http://stackoverflow.com/questions/5643635/how-to-get-selected-html-text-with-javascript
// and
// http://stackoverflow.com/questions/7690319/javascript-how-do-i-expand-a-user-selection-based-on-html-tags
TB.Selector.getSelected = function() {
    var html = "";
    if (typeof window.getSelection != "undefined") {
        var sel = window.getSelection();
        if (sel.rangeCount) {
            var range = sel.getRangeAt(0);

            var startEl = sel.anchorNode;
            if (startEl != range.commonAncestorContainer) {
                while (startEl.parentNode != range.commonAncestorContainer) {
                    startEl = startEl.parentNode;
                }
            }
            var endEl = sel.focusNode;
            if (endEl != range.commonAncestorContainer) {
                while (endEl.parentNode != range.commonAncestorContainer) { …
Run Code Online (Sandbox Code Playgroud)

javascript jquery dom range

5
推荐指数
1
解决办法
1318
查看次数

window.getSelection返回html

function selected() {
   var selObj = window.getSelection();
}
Run Code Online (Sandbox Code Playgroud)


此函数返回网页中的选定文本.如何返回所选区域的html.这可能与标签<img><a>标签有关吗?


以下是功能列表:https://developer.mozilla.org/Special :
Tags?tag = DOM&languageUen

html javascript jquery dom execcommand

4
推荐指数
1
解决办法
1万
查看次数

使用文本区域中的代码镜像获取选定/突出显示的文本

在我的带有codemirror的文本区域中,我试图能够选择/突出显示文本,然后能够单击我的粗体按钮,并应在其周围包裹粗体标签.

我看过了

问题1,SO问题2

但似乎不适用于代码镜像.

我的问题是:使用codemirror我如何获取所选文本,然后确保当我单击粗体按钮时它正确包装文本?

Codepen代码视图

Codepen全视图

脚本

var editor = document.getElementById('text-editor');
var string = grabed_text();

    $("#text-editor").each(function (i) {
        editor = CodeMirror.fromTextArea(this, {
            lineNumbers: true,
            mode: 'html'
        });

        $('button').click(function(){

          var val = $(this).data('val');


          switch(val){
            case 'bold': editor.replaceSelection('<b>' + string + '</b>');
            break;
           }
        });
    });

function grabed_text() {

}    
Run Code Online (Sandbox Code Playgroud)

HTML

<div class="container">

<div class="row">

<div class="col-lg-12 col-md-12 col-sm-12 col-xs-12">
<div class="panel panel-default"  onLoad="text_editor();">
<div class="panel-heading">
<button type="button" data-val="bold" class="btn btn-default">Bold</button>
</div>
<div class="panel-body"> …
Run Code Online (Sandbox Code Playgroud)

javascript jquery codemirror

3
推荐指数
1
解决办法
3277
查看次数

IE 11 document.selection不起作用

我试图取消选择HTML编辑器中的选定内容。

我已经使用selection.empty()了取消选择内容的功能,它在IE10之前可以正常工作,但在IE11中却无法正常工作。另外该create功能在IE11中不起作用

是否有其他替代功能?

internet-explorer internet-explorer-10 internet-explorer-11

1
推荐指数
1
解决办法
5691
查看次数