Tag: DOM

无法理解addEventListener中的useCapture属性

我在https://developer.mozilla.org/en/DOM/element.addEventListener阅读文章,但无法理解useCapture属性。 定义有: 如果为true,则useCapture表示用户希望启动捕获。 启动捕获之后,指定types的所有事件将被分派到注册的侦听器,然后被分派到DOM树下的任何EventTargets。 在树中冒泡的事件不会触发指定使用捕获的侦听器。 在这段代码中父事件触发子之前,所以我不能理解它的行为。文件对象有usecapture true,子div有usecapture设置为false,文件usecapture被跟踪。所以为什么文件属性比孩子更喜欢。 function load() { document.addEventListener("click", function() { alert("parent event"); }, true); document.getElementById("div1").addEventListener("click", function() { alert("child event"); }, false); } <body onload="load()"> <div id="div1">click me</div> </body>

为什么说React的虚拟DOM概念比脏模型检查更高效?

我在http://www.youtube.com/watch?v=x7cQ3mrcKaY上看到了一个React开发人员的演讲,演讲者提到模型的肮脏检查可能会很慢。 但是,由于在大多数情况下,虚拟DOM应该比模型更大,所以不计算虚拟DOM之间的差异实际上甚至更less。 我真的很喜欢虚拟DOM的潜在力量(特别是服务器端渲染),但我想知道所有的优点和缺点。

jQuery:删除内部元素除外的元素

有没有什么办法可以删除内部元素除外: <div class="gallery"> <a href="images/rep.png" title="rep"> <img src="http://example.com/uploads/rep.png" class="thumbnail" alt="rep" title="rep"> </a> </div> 至 <div class="gallery"> <img src="http://example.com/uploads/rep.png" class="thumbnail" alt="rep" title="rep"> </div> 我写了这个代码,但不工作: $(".gallery").contents().filter(".thumbnail").remove();

JavaScript DOMParser访问innerHTML和其他属性

我正在使用下面的代码来parsing一个string到DOM: var doc new DOMParser().parseFromString(string, 'text/xml'); 其中string就像<!DOCTYPE html><html><head></head><body>content</body></html> 。 typeof doc给我的object 。 如果我做了像doc.querySelector('body')我得到一个DOM对象。 但是,如果我尝试访问任何属性,就像你通常可以,它给了我undefined : doc.querySelector('body').innerHTML; // undefined 其他属性也是如此,例如id 。 另一方面,属性检索精确doc.querySelector('body').getAttribute('id'); 。 有没有一个神奇的function来访问这些属性?

jQuery DOM更改不在视图源中显示

我在这里有一个简单的问题。 我知道在jQuery中,你可以通过做类似的东西来dynamic地追加DOM元素 $('').append('<p>Test</p>'); 但是我的问题是,为什么这些元素实际上不会在代码中直观显示(例如,当您在浏览器中查看源代码时)。 请高手,让我知道为什么。 谢谢

确定鼠标指针位于Javascript的哪一个元素

我想要一个函数来告诉我鼠标光标结束的元素。 因此,例如,如果用户的鼠标hover在这个textarea(id为wmd-input )上,调用window.which_element_is_the_mouse_on()将在function上等价于$("#wmd-input")

如何使用Phantomjs向下滚动以加载dynamic内容

我试图从用户向下滚动到底部(无限滚动)时dynamic生成内容的页面刮取链接。 我试图用Phantomjs做不同的事情,但不能收集第一页以外的链接。 假设加载内容的底部的元素具有类.has-more-items 。 直到最终内容在滚动时才加载,然后在DOM中变为不可用(display:none)。 这是我尝试过的东西 – 在var page = require('webpage').create();后面设置viewportSize到一个很大的高度var page = require('webpage').create(); page.viewportSize = {width:1600,height:10000,}; 在page.open里面使用page.scrollPosition = { top: 10000, left: 0 } ,但是没有效果 – page.open('http://example.com/?q=houston', function(status) { if (status == "success") { page.scrollPosition = { top: 10000, left: 0 }; } }); 也试过把它放在page.evaluate函数里面,但是给出了 参考错误:无法findvariables页面 尝试在page.evaluate和page.open内使用jQuery和JS代码,但page.open $(“html,body”)。animate({scrollTop:$(document).height()},10,function(){//console.log('check for execution');}); 因为它也是在document.ready 。 类似的JS代码 – […]

获取指定位置的元素 – JavaScript

使用Javascript,我怎么能在一个给定的位置识别元素? 基本上我正在寻找写一个函数,它接受两个input参数(x和y坐标),并返回html元素在屏幕上由参数表示的位置。

操作innerHTML将删除子元素的事件处理程序?

我有这个非常简单的演示: function foo() { alert('Works!'); } var inp = document.createElement('input'); inp.onblur = foo; document.body.appendChild(inp); 看到这里: http : //jsfiddle.net/A7aPA/ 正如你所看到的,这是有效的。 (点击input,然后点击其他地方,popup一个提示。) 但是,如果我将这一行添加到JavaScript代码中: document.body.innerHTML += '<br>'; 那么模糊处理程序停止工作(并没有错误抛出顺便说一句)。 看到这里: http : //jsfiddle.net/A7aPA/1/ 这是为什么?

window.location.href改变时的事件

我正在写一个网站的Greasemonkey脚本,在某些时候修改location.href 。 当window.location.href在页面上发生变化时,如何获得一个事件(通过window.addEventListener或类似的东西)? 我也需要访问指向新的/修改后的url的文档的DOM。 我见过其他解决scheme,涉及超时和轮询,但我想避免,如果可能的话。