相关疑难解决方法(0)

替换contenteditable div中的选定文本

我一直在高低寻找答案,但失败了.

是否有跨浏览器解决方案来替换contenteditable div中的选定文本?我只是希望用户突出显示一些文本并将突出显示的文本替换为xxxxx.

javascript contenteditable

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

为什么在函数内部创建同名变量时不会覆盖函数参数?

var a = 'why is this not undefined?';
function checkScope(a) {
    var a;
    console.log(a);
}
checkScope(a);
Run Code Online (Sandbox Code Playgroud)

Javascript是功能范围语言,对吗?当我在与函数参数使用相同名称的函数内部声明一个新变量时,为什么新定义的变量仍然保存与参数相同的数据?

我以为它应该是未定义的?

javascript variables function-parameter

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

保存选择文本,稍后在html和javascript中显示

我有一个困难的情况与HTML和JavaScript.我的html页面允许用户选择文本并用颜色突出显示.现在我想将状态保存到数据库中以便稍后为该用户显示它.当然,我可以在用户编辑后保存整个html.但我只想保存一些参数,结合原始html显示状态用户上次查看的页面.我们可以使用这个功能:

var index = innerHTML.indexOf(text);
Run Code Online (Sandbox Code Playgroud)

突出显示该索引处的文本.但是如果页面中有很多相同的文本,我想要突出显示之前用户突出显示的文字.

任何人都可以通过javascript告诉我如何实现这一目标?

我非常感谢你的帮助.

html javascript jquery

19
推荐指数
2
解决办法
2643
查看次数

从用户选择的文本返回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万
查看次数

如何从jquery中的文本区域中选择文本?

如果我从文本区域中选择一个文本我需要知道选择了哪个文本,例如"hello world"如果我选择你好我想看看你好如何选择如何在jquery中执行此操作.我想让它变得大胆.

<textarea id="editor" cols="80" rows="20">
   Hello world, This is Me!
</textarea> 
<button onclick="SelectText()">
  Bold
</button>
Run Code Online (Sandbox Code Playgroud)

javascript jquery

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

如何在HTML文档中的选定位置插入元素?

我想在用户选择文档中的文本确定的位置插入一个元素(span,div等).

我能够得到选择的元素.但是我无法确定选择的确切位置.

例如:

<span>this is testing string for testing purpose</span>
Run Code Online (Sandbox Code Playgroud)

在此,我们假设用户选择了第二个'测试'字样.我希望它被替换为

<span>this is testing string for <b>testing</b> purpose</span>
Run Code Online (Sandbox Code Playgroud)

我该怎么做?

顺便说一句:我知道这是可能的.谷歌浪潮做到了.我只是不知道该怎么做

html javascript dom

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

在html元素中检测用户选择

如何检测用户选择(用鼠标突出显示)是否在某个元素的子元素之内?

例:

<div id="parent">
   sdfsdf
   <div id="container">
       some 
      <span>content</span>
   </div>
   sdfsd
</div>
Run Code Online (Sandbox Code Playgroud)

伪代码:

if window.getSelection().getRangeAt(0) is a child of #container
 return true;
else
 return false;
Run Code Online (Sandbox Code Playgroud)

javascript jquery

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

使用javascript检测选择结束位置

我编写了一个代码来检测使用javascript的选择结束,并在最终位置放置一个标记.看到这个jsfiddle:http://jsfiddle.net/vCwwN/

上面的代码执行以下操作:

  • 它正确处理所有LTR脚本(例如英语)(正确显示标记).
  • 对于LTR脚本(例如英语)它处理选择是向前(从左/上到右/下)还是向后(从右/下到左/上)正确显示选择停止的标记(使用鼠标或键盘) .
  • 它用于getClientRects查找所有选择矩形边界,以及用于检测选择方向的黑客(如果向后或不向后).根据这两个信息,它将标记放在末尾.

您可以尝试选择上面描述的英文脚本,没有任何问题.唯一的问题是,当你试图处理RTL脚本(如阿拉伯语),则该标记显示在所选择的RTL脚本的开始,而不是结束(其中鼠标/键盘实际上停止).这些导致问题:

  • 在RTL脚本(阿拉伯语)中开始选择,并在RTL脚本(阿拉伯语)中结束选择.这显示了选择开始时的标记.
  • 在LTR脚本(英语)中开始选择,并在RTL(阿拉伯语)脚本中结束选择.这将在RTL脚本选择开始时显示标记(而不是结束).

基本上,从任何地方开始的选择(LTR或RTL)和以RTL脚本结束是不正确的.任何其他情况都得到了正确处理(例如,从LTR或RTL开始,以LTR结束,甚至在途中通过RTL脚本).

问题是RTL脚本的流向是翻转的,因此向后是向前,向前是向后.这就是为什么我的代码无法正确处理RTL并且后向黑客被逆转的原因.

我想到的一个解决方案是检测选择的最后一个字符,看看它是否有RTL脚本,然后根据这个翻转后退标志.我已经放置了一个函数来检测文本是否以RTL字符结尾(它与未使用的jsfiddle相同).它可能会帮助你,帮我解决它:)

html javascript selection right-to-left

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