相关疑难解决方法(0)

如何在contenteditable元素(div)中设置插入符号(光标)?

我以这个简单的HTML为例:

<div id="editable" contenteditable="true">
  text text text<br>
  text text text<br>
  text text text<br>
</div>
<button id="button">focus</button>
Run Code Online (Sandbox Code Playgroud)

我想要简单的事情 - 当我点击按钮时,我想将插入符号(光标)放入可编辑div中的特定位置.通过网络搜索,我将这个JS附加到按钮点击,但它不起作用(FF,Chrome):

var range = document.createRange();
var myDiv = document.getElementById("editable");
range.setStart(myDiv, 5);
range.setEnd(myDiv, 5);
Run Code Online (Sandbox Code Playgroud)

是否可以像这样设置手动插入位置?

javascript jquery caret contenteditable cursor-position

172
推荐指数
7
解决办法
14万
查看次数

如何以编程方式在UIWebView中输入"选择模式"?

我正在尝试创建类似iBooks的体验,用户可以在文档中突出显示文本.为此,我正在使用UIWebView和HTML格式的文档.

我已经弄清楚如何捕获初始选择突出显示,但无法做到这一点,以便用户可以编辑或更改其突出显示.

我希望预先定义一个带有高亮范围的javascript选择DOM对象,然后以编程方式输入'选择模式'.您似乎只能通过长按一段文本进入选择模式,然后自动为您创建选择DOM对象.

如何以编程方式使用UIWebView进入选择模式?

javascript uiwebview ibooks ios

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

Android 3.x仅限WebView文本选择+ JavaScript

问题域:基于Android WebView的ePub格式阅读器 -

我们需要可以通过JavaScript方法访问的文本高亮(例如,打开它们,关闭它们,保存它们给它们发送电子邮件等)

知道的任何人,如果我错了,请纠正我:在WebView上选择文本时 -

基本上我们交给一个TextView覆盖(WebTextView),除了可视化之外没有附加到底层的html(很好地将它全部排成一行并使其无缝,顺便说一句),我们在其上执行TextSelectionActionMode并提供ClipboardManager结果......为了清楚起见,在此库存过程中,实际上并未实际选择带有WebView的实际HTML,这就是JavaScript无法访问操作结果的原因.

因此,为了使这种行为在3.1+中工作,我有一些可能的计划继续在WebView上实现我自己的选择 - 这是我想知道我是否看不到我的角落的部分:) - -

1)捕获MOTION_DOWN的长按,启动选择模式,覆盖内置的TextSelection ActionMode(以提供客户品牌 - 我发现这样做的方式是如此hackish它伤害)观看拖动,捕获MOTION_UP位置,映射这些coords到WebView上,并根据coords进行选择(同时将文本与ClipboardManager捕获的文本进行比较)

2)创建我自己的"WebTextView"(整个lotta工作大声笑),并且不那么 - hackishly创建我自己的ActionMode并完成上述所有操作.

3)使用股票选择过程生成的MotionEvents,并以某种方式覆盖由此触发的股票TextSelection ActionMode.

这些是我看到的选项,希望我对此的接近和挫败感使我对一个更简单(读内置)解决方案的看法变得模糊不清.

感谢你的宝贵时间.

javascript android textselection webview android-3.0-honeycomb

11
推荐指数
2
解决办法
6308
查看次数

getSelection&surroundContents跨多个标签

我有一个脚本可以更改已选择的文本的背景颜色.但是,当跨多个元素/标签选择文本时,我遇到了问题.

我得到的代码是:

var text = window.getSelection().getRangeAt(0);
var colour = document.createElement("hlight");
colour.style.backgroundColor = "Yellow";
text.surroundContents(colour);
Run Code Online (Sandbox Code Playgroud)

输出的错误是:

Error: The boundary-points of a range does not meet specific requirements. =
NS_ERROR_DOM_RANGE_BAD_BOUNDARYPOINTS_ERR
Line: 7
Run Code Online (Sandbox Code Playgroud)

我相信这与getRange()函数有关,虽然我不太清楚如何继续,因为我是javascript的初学者.

有没有其他方法可以复制我想要实现的目标?

非常感谢.

javascript getselection

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

如何通过javascript添加<span>?

可能重复:
如何使用Javascript向html页面添加/删除CSS /颜色样式?

我对HTML和javascript有疑问.我得到了以下的paragrahe.

function add_span(){
     // ??
}

<input type="button" onclick="add_span()" value="add span"/>
<p> statement1, statement2, statement3 </p>
Run Code Online (Sandbox Code Playgroud)

是否可以在用户之后得到以下结果

  1. 用鼠标选择突出显示的文本
  2. 单击按钮

例如

  1. 突出'声明1'
  2. 单击按钮

预期结果:

<input tupe="button" onclick="add_span()" value"add span"/>
<p> <span class="ABC">statement1,</span> statement2, statement3 </p>
Run Code Online (Sandbox Code Playgroud) #####更新了代码,但没有工作
// updated code in the add_span

    var selectedText;

    if (window.getSelection)
    {
        selectedText = window.getSelection();
    }
    else if (document.getSelection) // FireFox
    {
        selectedText = document.getSelection();
    }
    else if (document.selection)  // IE 6/7
    {
        selectedText = document.selection.createRange().text;
    }

    //create the DOM object
    var newSpan …
Run Code Online (Sandbox Code Playgroud)

html javascript

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

JQuery查找并更改字符串的样式

我需要编写一个函数,它将在我的HTML页面中搜索特定字符串的所有内容,如果找到它,则更改文本的颜色.

这可能吗?

谢谢

html javascript css jquery

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

突出显示javascript中的匹配文本

可能重复:
使用JavaScript突出显示文本范围
在jQuery中查找文本字符串并使其变为粗体

假设我有一堆文件路径,类似于:

  • /卷/ A //阵列/ 05_SCRIPTS /分期/树/ 04_OUTPUTS/MPEG_FF_PS_wCropping/01_NBC_Youtube /积压/存档/ LawAndOrder_S20

  • /卷/ A // AArray/05_SCRIPTS /分期/树/ 04_OUTPUTS/MPEG_FF_PS_wCropping/01_NBC_Youtube /积压/存档/ LawAndOrder_S20/nbcnetwork-PDS-E8818-US-插入 - 20121020

如何突出显示页面上特定文本的所有匹配项.例如,如果"04"我正在寻找,它会做如下:

$(source).find('04').addClass('highlight');
Run Code Online (Sandbox Code Playgroud)

这是伪代码,可能不太合适,但这正是我想要做的.

javascript

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

删除使用JavaScript添加到所选文本的突出显示?

我使用JavaScript使用以下代码突出显示了所选文本:

var sel = window.getSelection();
if(!sel.isCollapsed) {
    var range = sel.getRangeAt(0);
    sel.removeAllRanges();
    document.designMode = "on";
    sel.addRange(range);
    document.execCommand("HiliteColor", false, "#ffffcc");
    sel.removeAllRanges();
    document.designMode = "off";
}
Run Code Online (Sandbox Code Playgroud)

如何删除突出显示的颜色并恢复文本?

javascript dom highlight selection

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

在绝对位置设置从A到B的选择范围

如何从A(x1,y1)到B(x2,y2)以编程方式选择?

x1,y1,x2,y2是像素坐标.我搜索了很多,在我发现的所有功能中,我们必须指定一个特定的标签,然后选择它的内容.

javascript

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

将CKEditor重新聚焦到正确的光标位置

我正在构建一个CMS系统,我使用jQuery和CKEditor来编辑内联内容.当编辑器模糊时,要求用户确认他/她想要丢弃编辑.如果选择"否",则应取消模糊事件,编辑器保持焦点而不更改光标位置.因为在我看来这是不可能的,所以我尝试在模糊完成后重新聚焦编辑器.以下代码段来自blur事件处理程序:

var $this = $(this);
if (confirm('Discard your changes?')) {
    $this.html($this.data('previous'));
} else {
    // Optimally prevent the blur event, but alternatively
    // reintroduce focus at correct position...
    $this.data('editor').focus();
}
Run Code Online (Sandbox Code Playgroud)

请注意,focus调用是在包含的编辑器实例上完成的$this.data('editor'),但结果似乎与我直接执行的操作相同$this.

这个解决方案的问题在于,尽管它重新引入焦点,但光标现在位于文本的开头,这对于最终用户来说是非常不直观和恼人的,他们认为没有任何改变.另一方面,放弃焦点不是一种选择,因为我不希望用户能够阻止重置内容,然后继续进行其他更改,认为更改是持久的.

因此,我想要一个解决方案,我可以完全阻止模糊,或者将光标重新引入它的最后位置.

javascript jquery editor content-management-system ckeditor

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