我以这个简单的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)
是否可以像这样设置手动插入位置?
我正在尝试创建类似iBooks的体验,用户可以在文档中突出显示文本.为此,我正在使用UIWebView和HTML格式的文档.
我已经弄清楚如何捕获初始选择突出显示,但无法做到这一点,以便用户可以编辑或更改其突出显示.
我希望预先定义一个带有高亮范围的javascript选择DOM对象,然后以编程方式输入'选择模式'.您似乎只能通过长按一段文本进入选择模式,然后自动为您创建选择DOM对象.
如何以编程方式使用UIWebView进入选择模式?
问题域:基于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
我有一个脚本可以更改已选择的文本的背景颜色.但是,当跨多个元素/标签选择文本时,我遇到了问题.
我得到的代码是:
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的初学者.
有没有其他方法可以复制我想要实现的目标?
非常感谢.
我对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)
是否可以在用户之后得到以下结果
例如
预期结果:
<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页面中搜索特定字符串的所有内容,如果找到它,则更改文本的颜色.
这可能吗?
谢谢
假设我有一堆文件路径,类似于:
/卷/ 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使用以下代码突出显示了所选文本:
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)
如何删除突出显示的颜色并恢复文本?
如何从A(x1,y1)到B(x2,y2)以编程方式选择?
x1,y1,x2,y2是像素坐标.我搜索了很多,在我发现的所有功能中,我们必须指定一个特定的标签,然后选择它的内容.
我正在构建一个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.
这个解决方案的问题在于,尽管它重新引入焦点,但光标现在位于文本的开头,这对于最终用户来说是非常不直观和恼人的,他们认为没有任何改变.另一方面,放弃焦点不是一种选择,因为我不希望用户能够阻止重置内容,然后继续进行其他更改,认为更改是持久的.
因此,我想要一个解决方案,我可以完全阻止模糊,或者将光标重新引入它的最后位置.