草庐IT

DOM-Level

全部标签

javascript - 在添加到 DOM 之前获取元素的高度

有没有办法在将元素append到DOM之前获取元素的高度?我知道clientHeight没有像我试过的那样工作,它总是返回0。是否有其他方法可以返回高度,或者元素是否必须是DOM的一部分才能计算高度?这是我想要的示例:functiontest(a){vara=document.createElement(a)a.style.top=(window.innerHeight/2-a.clientHeight/2)+'px'//fixedpositioninCSSdocument.body.appendChild(a)}*注意:这只是我正在处理的功能的简化版本,以便在没有所有不必要的困惑的情

javascript - 涉及 DOM 的单元测试 Javascript

您如何对使用和修改DOM的javascript进行单元测试?我举一个简单的例子。检查空白文本字段的表单验证器,用javascript编写并使用JQuery。functionValidator(){this.isBlank=function(id){if($(id).val()==''){returntrue;}else{returnfalse;}};this.validate=function(inputs){varerrors=false;for(varfieldininputs){if(this.isBlank(inputs[field])){errors=true;break;}

javascript - 使用 document.createDocumentFragment() 和 innerHTML 来操作 DOM

我正在创建如下文档片段:varaWholeHTMLDocument='helloworld';varfrag=document.createDocumentFragment();frag.innerHTML=aWholeHTMLDocument;变量aWholeHTMLDocument包含一个长字符串,它是页面的整个html文档,我想将它插入到我的fragment中以生成和操作动态DOM。我的问题是,一旦我将该字符串添加到frag.innerHTML中,它不应该加载该字符串并将其转换为DOM对象吗?设置innerHTML后,我不应该通过属性访问DOM吗?我试过frag.childNod

Javascript 内存泄漏 : Detached DOM tree

我注意到当我处于表单中时浏览器的内存开始增加(这在任务管理器中很明显)。在IE9中,经过一些使用后,这很容易超过500MB,而chrome更有弹性(使用相同的测试达到200MB)。我正在使用chrome开发者工具来调试这个问题。我注意到有大量的DetachedDOM树:我假设这可以确认存在内存泄漏。那是正确的吗?其次,我需要找出如何确定问题的根本原因。我知道您应该使用保留树来确定是什么阻止了这些项目被回收。但是我找不到如何使用保留树。比如上面截图中的retainingtree是什么意思?如有任何帮助,我们将不胜感激。 最佳答案 在编

javascript - 从 "popup.html"访问当前选项卡 DOM 对象?

我正在为GoogleChrome浏览器开发一个扩展程序。我不知道如何从“popup.html”页面访问当前选项卡DOM对象。有什么建议吗? 最佳答案 默认情况下,在popup.js/popup.html中,“文档”对象仅指扩展弹出窗口的文档。要获取特定选项卡(例如当前事件选项卡)的DOM,您需要使用contentscriptscommunications.例如,我们需要从extension发送请求通过popup到您的内容脚本,所以在popup.html中你做这样的事情:chrome.tabs.getSelected(null,fun

javascript - DOM 节点上的事件处理程序是否随节点一起删除?

(注意:我在下面使用的是jQuery,但问题实际上是一般的JavaScript问题。)假设我有一个div#formsection,其内容使用AJAX重复更新,如下所示:varformSection=$('div#formsection');varnewContents=$.get(/*URLfornextsection*/);formSection.html(newContents);每当我更新这个div时,我triggeracustomevent,它将事件处理程序绑定(bind)到一些新添加的元素,如下所示://Whenthefirstsectionoftheformisloaded

javascript - 什么相当于 Chrome 开发工具中的 Firebug DOM 选项卡?

我习惯使用DOM选项卡来检查Firebug页面上存在的全局JS变量。它在Chrome开发者工具中的等效项是什么? 最佳答案 输入window,然后您将看到window对象及其中的所有内容。p.s:window是普通网页中“最顶层”的对象。(全局范围)由于特别提到了“Chrome开发者工具”,我们可以安全地假设window将始终是全局范围。按Console,然后输入window。按enter,现在您可以看到一个全局变量列表,例如$(jQuery)和document。 关于javascrip

javascript - 如果将脚本动态添加到 DOM, "async"属性/属性是否有用?

这个问题与Whichbrowserssupport?有点相切.我最近看到一些脚本做这样的事情:vars=document.createElement('script');s.type='text/javascript';s.async=true;s.src='http://www.example.com/script.js';document.getElementsByTagName('head')[0].appendChild(s);这是动态添加脚本到DOM的常用方法,来自SteveSouders的书“EvenFasterWebSites”的IIRC提示所有现代浏览器异步加载脚本(即

javascript - AngularJS:ng-repeat 动态列表,无需重建整个 DOM 树?

我在表行上使用ng-repeat,数据来自从服务器检索的JSON数组。我的目标是在服务器上添加、删除或修改项目时自动更新列表,而不影响未修改的项目。在最终实现中,这些表行还将包含双向绑定(bind)和元素将更新发送回服务器。中的一些可用选项元素也将使用来自另一个列表的ng-repeat指令生成,该列表也可能会发生变化。到目前为止,每次从服务器传来一个新的数组(目前每两秒轮询一次),整个ng-repeat列表都会被删除并重新生成。这是有问题的,因为它会干扰文本选择,即使用户当前正在编辑输入字段也会破坏输入字段,并且运行速度可能比必要的慢得多。我已经编写了其他Web应用程序来使用jQuer

javascript - 一个很好的与浏览器和 DOM 相关的 Javascript API 引用文档

这个问题在这里已经有了答案:Whatisthebestonlinejavascript/css/html/xhtml/domreference?[closed](20个答案)关闭9年前。我正在寻找一个很好的JavascriptAPI文档,尤其是与浏览器和DOM相关的文档。我不是在寻找任何类型的Javascript教程,而只是寻找所有标准Javascript类和Web浏览器中使用的类的文档。类似于Java的Javadoc(http://java.sun.com/j2se/1.4.2/docs/api/)