小编Tim*_*own的帖子

使用范围的奇怪的firefox/javascript行为

嘿,所以我正在使用范围,我试图限制用户可以在页面上进行的选择.我的意思是用户可以选择他想要的任何东西,但选择不能超过我将设置的边界.

首先,我用定义的范围定义"边界".然后我将当前用户选择与定义的范围进行比较,如果当前选择开始低于边界或者当前选择结束高于边界,则我相应地调整,以便用户选择永远不会超出定义的边界范围/选择.

下面的函数只能工作如果我在进程启动前输出一个警报,如果我删除警报,那么firefox表现得很奇怪(比如选择页面的其他部分等)

问题是:为什么以下代码适用于警报以及为什么没有警报就无法正常工作?

谢谢!

var range = document.createRange(); // this is the boundaries range
range.selectNodeContents(document.getElementById("container"));

function test(){
            alert("let's go"); // if I remove this alert, the code doesn't work as expected, WHY?!
            if(window.getSelection().rangeCount == 0){
                return;
            }
            var curRange = window.getSelection().getRangeAt(0);
            if(curRange.compareBoundaryPoints(Range.START_TO_START, range) < 0){
                curRange.setStart(range.startContainer,range.startOffset);
            }

           if(curRange.compareBoundaryPoints(Range.END_TO_END, range) > 0){
               curRange.setEnd(range.endContainer,range.endOffset);
            }
        }
Run Code Online (Sandbox Code Playgroud)

javascript firefox range

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

Contenteditable - 从插入符号提取文本到元素结尾

在略读所有可能的问题和答案后,我将以这种方式尝试.

我正在编写一个RTE,但没有成功地在一个可信的元素中提取文本.原因是,每个浏览器以稍微不同的方式处理节点和按键(#13)事件(例如,一个创建'br',另一个'div','p'等等.)这一切都是一致的,我正在编写一个跨浏览器编辑器,用e.preventDefault()杀死所有默认操作;

以下场景:

1)用户点击#13键(检查)

2)检测到插入位置(检查)

3)在插入符号的元素之后创建新的p(aragraph)(检查)

4)如果插入符号和元素的结尾之间的文本(节点),提取它(???)

5)将文本(节点)放入新创建的p(aragraph)(检查)

你可以想象,除了第4点,一切都有效.

在众所周知的js rangy库中有类似的功能,正在提取特定的选择.

我需要的是:获取并提取从插入符号到可信段落(p,h1,h2,...)元素末尾的所有文本(当然还有标记,因此是splitBoundaries).

欢迎任何线索,提示或片段!提前致谢.

亲切的问候,p

javascript select extract caret contenteditable

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

使用continuation生成Javascript代码背后的诀窍是什么?

我正在寻找一种方法来添加到Javascript非常特殊的非抢占式多线程形式.Mozilla的Javascript 1.7支持使用本机协同程序yield,但我不想使用特定于浏览器的解决方案.我看到有几个continuation或coroutines的实现,基于将带注释的Javascript代码转换为普通的Javascript.一些例子是StratifiedJS,Narrative Javascriptjwacs.

我不需要一个功能齐全的模拟Javascript异步调用框架; 我只是需要它来实现我想要实现的非常具体的用法.因此,上面的库对我来说太过分了.

有人能指出这种预处理器使用的基本"技巧"(或技巧)吗?是否有一些特殊的语言破解可以在Javascript中实现延续,代价是生成一些额外的代码?欢迎任何相关的参考.

javascript continuations preprocessor code-generation coroutine

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

window.close()的; javascript代码无法使用chrome

我有一个图像javascript按钮,它不适用于chrome,

你能帮我提前谢谢!

这是代码:

我只是隐藏了弹出窗口:

编辑:

关闭我使用此功能只是隐藏它

function hideBulle() {
    $("bullepopup").style.display="none";
    hideoverlay();
}
Run Code Online (Sandbox Code Playgroud)

这是创建一个框和此按钮的代码

  function showBulle(obj) {
    showoverlay();
    coo =   $("content").getPosition();
    $("bullepopup").style.width = "555px";
    $("bullepopup").style.height = "555px";
    $("bullepopup").position({x: (coo.x+((650-555)/2)), y: (coo.y+(440-250)/2)});
    $("bullepopup").style.display="";
    $("bullepopup").set('html','');
    new Element('img',{src:'images/br588.gif',styles: {float:'right',cursor:'pointer'},
                            events: {
                                click: function(){
                                hideBulle();
                                }
                            }
                        }).inject($('bullepopup'));

    new Element('br').inject($('bullepopup'));

    new Element('div',{html:obj.get('html')}).inject($('bullepopup'));
}
function hideBulle() {
    $("bullepopup").style.display="none";
    hideoverlay();
}
Run Code Online (Sandbox Code Playgroud)

提前致谢!

javascript css html5 mootools

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

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

禁用某些键的默认操作

function keypressCheck() {
    var keyID = event.keyCode;

    //space pressed
    if (keyID == 32) {
        anotherFunction();
    }
}
Run Code Online (Sandbox Code Playgroud)

我希望anotherFunction()在按下空格键时运行,而不会发生页面滚动的默认操作.有没有办法做到这一点?

javascript keyboard events

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

最奇怪的javaScript数组文字

当我参与我的项目时,我不小心将这个数组命名为"名字"

var name = ["abc","abc","abc","abc"];
Run Code Online (Sandbox Code Playgroud)

它在我的项目中产生了一个不一致的原因,因为正如我预期的名字[0]会产生第一个abc,HOWEVER !,它给了我第一个字母!!! 我在Firefox控制台中尝试了这个数组,它总是给我的数组而不是我从键入Chrome控制台得到的字符串.因此,我再次将该变量重命名为Chrome中的其他内容

var foo = ["abc","abc","abc","abc"]; 
Run Code Online (Sandbox Code Playgroud)

foo [0]给了我第一个"abc".随意尝试这个,我猜测命名"名称"有问题,但不知道为什么.谢谢

javascript google-chrome

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

在IE浏览器中插入图像时如何重新聚焦?

有一个div:<div contenteditable="true"></div>在IE(7,8,9)中,然后我单击一个按钮以使用该document.execCommand('insertImage')方法插入图像.然后插入图像.到现在为止没有问题.但是使用可调整大小的处理程序选择插入的图像.如何取消选择并重新聚焦图像?谢谢.

$button.click(function(){ document.execCommand("insertImage",false,'url'); });

javascript jquery internet-explorer range

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

如何在execCommand WYSIWYG编辑器中查找所选的文本字体大小和名称

我正在使用WYSIWYG编辑器execCommand()和我自己的拖放式javascript函数.

我希望能够找到所选文本的名称和大小(如果适用).我怎么能这样做呢?

是否有与execCommand()此相关的特定功能?

javascript wysiwyg editor execcommand

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

使用JS检查HTML元素是否可编辑

使用JS,我们如何找到是否可以键入html元素.我正在尝试将".tagName"与"INPUT"或"TEXTAREA"进行比较,但它无法区分常规输入文本/电子邮件元素和单选按钮或提交按钮.

我也试过".isContentEditable",但当元素被"继承"时,我无法区分.

javascript contenteditable

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