Tag: DOM

INVALID_STATE_ERR:DOM例外11(WebKit)

我最近testing了一个我正在使用Chrome和Safari的Cappuccino应用程序。 我得到的错误: INVALID_STATE_ERR: DOM Exception 11: An attempt was made to use an object that is not, or is no longer, usable. 缺乏信息令人沮丧。 什么对象和我在哪里试图使用它? Chrome试图回答第二个问题,但是它给出的行号,465,当它给出的文件长度只有94行时,并不意味着什么。 没有更多的信息,我甚至不知道从哪里开始寻找。

CoffeeScript – 不允许在Angularexpression式中引用DOM节点

我的主要问题很简单: 在控制器或指令中进行DOM操作时出现错误,但function完美无缺。 Error: [$parse:isecdom] Referencing DOM nodes in Angular expressions is disallowed! Expression: open() 我想忽略这些错误,并从functionangular度(而不是从devise的angular度)得到确认安全的做法, 为了简单起见,我希望能够简单回答这个问题,而不用质疑我需要这样做。 现在,如果有人想要更详细地讨论,我有这个要点: https : //gist.github.com/kosz/04f916a5725d85045be5 (依赖:angular,jquery,jquery ui对话框)与我目前遇到的代码行为。 为了摆脱这个错误,我已经尽了最大的努力,根据我读的文档和文档,angular度上的dom操作似乎在指令中被鼓励。 所以我已经使代码与指令工作,但是,它仍然会抛出错误! 正如你所看到的,我正在使用JQuery UI,并显示每个列表项目,如果用户想编辑。 我不是直接操纵dom,但是,我需要一种方法来控制jQuery ui Dialog的closures/打开事件,这不会让Angular填充控制台的错误。 任何有关这方面的见解,非常感谢。 请注意,我知道angularui bootstrap模式,这不是我在这个特定的场景中使用的选项。

如何迭代HTML元素中的所有属性?

我需要JavaScript代码遍历HTML元素中的填充属性。 这Element.attributes ref说我可以通过索引访问它,但没有指定是否得到很好的支持,可以使用(跨浏览器)。 或者其他方式? (不使用任何框架,如jQuery / Prototype)

我是否需要删除事件监听器?

如果我有一个具有绑定了事件监听器的子代的父元素,在清除父代之前是否需要删除这些事件监听器? (即, parent.innerHTML = ''; )如果事件侦听器没有从元素中解除绑定(如果从DOM中移除),是否会有内存泄漏?

获取iframe的文档对象

我试图获得一个iframe的文档对象,但没有一个我googlesearch的例子似乎帮助。 我的代码如下所示: <html> <head> <script> function myFunc(){ alert("I'm getting this far"); var doc=document.getElementById("frame").document; alert("document is undefined: "+doc); } </script> </head> <body> <iframe src="http://www.google.com/ncr" id="frame" width="100%" height="100%" onload="myFync()"></iframe> </body> </html> 我已经testing了我能够获得iframe对象,但.document不起作用,.contentDocument也没有,我想我也testing了一些其他的选项,但是它们都返回未定义的,甚至是应该的已经工作,但他们不为我工作。 所以我已经有了iframe对象,现在我只想要它是文档对象。 我已经在Firefox和Chrome上testing过这个function。

确定最大可能的DIV高度

是否有推荐的方法来确定DIV可以设置的最大高度,并保持每个浏览器可见? 这似乎没有logging在任何地方,并且具有很高的实施特定性。 例如,请参阅以下testing脚本: http://jsfiddle.net/NP5Pa/2/ 这是一个简单的testing,可以在元素的相应clientHeight变为0之前find最大值,您可以设置DIV样式高度属性。您可以通过单击“查找最大值”然后将find的高度增加1并单击“设置高度”。 一些例子(Win7 / 64): Chrome (14.0) : 134,217,726 px Safari (5.1) : 134,217,726 px IE (9.0) : 10,737,418 px FF (7.0.1) : 17,895,697 px WebKit产生相同的结果并不令人惊讶,我想 – 更令人惊讶的是,IE和FF是如此不同。 有没有更好的办法? 你在32位系统中得到不同的结果吗? – EDIT:更新小提琴停止在10,000,000,000(并更快)为Opera。 这是很多像素。

我怎样才能确定一个dynamic创build的DOM元素是否已经添加到DOM?

根据规范 ,只有BODY和FRAMESET元素提供了一个“onload”事件来附加,但我想知道什么时候dynamic创build的DOM元素已经被添加到DOM中的JavaScript。 我目前使用的超天真的启发式,其工作如下: 遍历元素的parentNode属性,直到find最终的祖先(即parentNode.parentNode.parentNode.etc,直到parentNode为null) 如果最终的祖先有一个定义的,非null的身体属性 假设有问题的元素是dom的一部分 其他 在100毫秒内再次重复这些步骤 我所追求的是要么证实我所做的事情是足够的(再次,它在IE7和FF3中都有效),要么是更好的解决scheme,无论出于何种原因,我都完全忘记了; 也许其他属性我应该检查,等等 编辑:我想要一个浏览器不可知的方式做到这一点,我不住在一个浏览器的世界,不幸的是, 说,浏览器的具体信息是赞赏,但请注意哪个浏览器,你知道它的工作。谢谢!

getElementsByClassName()有两个类

是否有可能使用getElementsByClassName()只有一次获得类或 b类a所有元素? 我更喜欢香草JavaScript。

如何在jQuery中移动HTML元素?

我的HTML结构是这样的: <div id="parent"> <div id="1">Some content</div> <div id="2">Some content</div> </div> 我想将元素id="2"放在id="1"所以它会是这样的: <div id="parent"> <div id="2">Some content</div> <div id="1">Some content</div> </div> 我如何在jQuery中做这样的事情?

触发附加元素的CSS转换

正如这个问题所观察到的那样,在新添加的元素上直接的CSS转换被忽略了 – 转换的最终状态立即被渲染。 例如,给定这个CSS(前缀在这里省略): .box { opacity: 0; transition: all 2s; background-color: red; height: 100px; width: 100px; } .box.in { opacity: 1; } 这个元素的不透明度将被立即设置为1: // Does not animate var $a = $('<div>') .addClass('box a') .appendTo('#wrapper'); $a.addClass('in'); 我已经看到几种触发转换的方法来获得预期的行为: // Does animate var $b = $('<div>') .addClass('box b') .appendTo('#wrapper'); setTimeout(function() { $('.b').addClass('in'); },0); // Does animate var […]