草庐IT

dom-traversal

全部标签

javascript - 放置 Javascript 片段以在呈现之前更改页面的 DOM 的最佳位置在哪里

我有几个动态页面,我想在页面完全呈现之前更改某些元素。我的代码片段是这样的:document.body.getElementById("change").innerHTML="我无权更改内容服务器端。将代码片段放置在何处以使其在呈现页面之前运行代码的最佳位置?相反,将Javascript放在HEAD中(在window.onload事件中?)或在结束BODY之前(不在事件监听器中)是最优的吗? 最佳答案 恐怕您不太可能在页面呈现之前执行您的脚本。当然,您可以放置​​一个内联脚本并让它在您希望它显示内容的地方使用document.wri

javascript - 检测/拦截 <img> 插入 DOM

我们使用的是这家分析公司提供的第三方分析报告脚本。它将1x1像素的图像添加到DOM中,并在图像的URL中报告数据。我有什么办法可以监控DOM并拦截这个元素并在浏览器请求图像之前更改其“src”属性?我知道这听起来很奇怪,但我们想在这个报告脚本中加入一个功能(脚本被混淆了)。 最佳答案 在非IE浏览器中,您可以使用DOMNodeInserted事件检测DOM节点的插入。我不知道浏览器是否会在触发事件时发出HTTP请求;从快速测试来看,它似乎不在Firefox中。由于这在IE中不起作用,因此无论如何这都不是可接受的解决方案。docume

javascript - 单击在不同输入上启动 focusout 事件的 DOM 问题

我有一个与focusout事件处理程序我有一个使用点击事件处理程序Focusout检查输入框的格式是否正确。它通过根据正则表达式测试输入值来实现。如果失败,它会显示一条消息(一段时间后div淡入淡出)并通过调用重新聚焦我的输入window.setTimout(function(){$(this).focus();},10);因为我无法重新聚焦focusout事件处理程序。focusout事件也不能取消。仅供引用。Click从输入元素收集数据并使用Ajax发送。问题当用户TABs浏览表单时一切正常。当某个输入框的格式检查失败时,它会在用户按下TAB后立即重新聚焦。但是当用户不使用TAB而

javascript - 执行通过 DOM 插入加载的 javascript

我正在研究将小部件添加到客户站点的东西,并且我想异步加载我的js,以免阻止客户的页面加载。我一直在阅读很多关于此的主题,并且一直在尝试实现此处建议的模式,因为我的项目非常相似:http://friendlybit.com/js/lazy-loading-asyncronous-javascript我遇到的问题是我动态加载的javascript文件中的代码没有被执行。抱歉,如果这似乎是一个重复的问题,但我已经花了几个小时搜索和尝试略有不同的技术,并且我已经阅读了许多帖子,包括这些stackoverflow问题:Loadjavascriptasync,thencheckDOMloadedb

javascript - Uncaught Error NOT_FOUND_ERR DOM 异常 8

所以我删除了特定div下的所有内容并添加了消息内容。但是,javascript在完成后抛出以下错误:UncaughtError:NOT_FOUND_ERR:DOMException8这是执行代码newAjax.Request("profileThis.php",{method:'post',parameters:{title:title,review:review,userId:userId,category:category,categoryId:categoryId},onSuccess:function(ajax){alert(ajax.responseText);//thisi

javascript - 为什么 jquery 链接回调中的 'this' 是 DOM 元素?

所以我知道在使用$.fn.each、$.fn.bind等时,它是this的标准jQuery中的关键字将回调链接为DOM元素。我知道至少在我的开发中我通常希望DOM元素包装在一个jQuery集合中——90%的时间我最终都在做var$this=$(this)。我确信他们选择绑定(bind)到未包装的元素有一个很好的(可能是基于性能的)理由,但有人知道它到底是什么吗?这是我觉得知道答案的事情之一,可能会为更深层次地理解图书馆和语言打开大门。 最佳答案 Iamsuretherewasagood(likelyperformance-based

javascript - 为什么通过缓存变量访问 DOM 会更快?

我正在努力提高我对javascript的了解,在搜索一些“最佳实践”时,有人向我指出,缓存DOM文档然后通过该var访问它比直接访问文档对象更快.您可以在此处查看我在jsperf上所做的编辑的结果:http://jsperf.com/jquery-document-cached-vs-uncached/3(编辑:标题为“jsquery”,因为那是原始测试,我的编辑包含vanillajavascript,框架没有区别)这让我很好奇。基本上我在等式中引入了一个新变量,这如何使事情变得更快而不是更慢?据我所知,“printa”应该比“b=a;printb”(比喻)好这种情况有什么不同?

javascript - JQuery 加载 gif 在繁重的 dom 操作期间卡住

这个问题在这里已经有了答案:关闭9年前。PossibleDuplicate:HowtomakeGIFrotatewhenthetreeisloadinginJavascript正如标题所说,我的加载gif在通过ajax成功调用时卡住。成功调用需要执行一些繁重的DOM操作,并且由于UI是单线程的,它会导致我的加载gif卡住。到目前为止我已经尝试过优化我的功能,但是有太多的数据需要同时加载。使用setTimeout(),但它会在加载所有内容后显示所有gif。使用spin.js,但在DOM操作期间它也会卡住。有什么办法可以解决这个问题吗?非常感谢任何帮助。编辑1:与ArcGIS有关javas

javascript - 为尚未附加的元素绑定(bind) "insertion into DOM event"

我正在寻找这样的东西:vardiv=document.createElement('div');div.id='proprioceptiveDiv';$(div).on('appendedToDOM',function(){//...});document.body.appendChild(div);//triggersabovehandler这存在吗?我正在使用jQuery,不想仅仅为了这种能力而导入整个插件或另一个库,所以我只对一个简短的解决方案感兴趣。 最佳答案 您可以使用MutationEvents但这些事件已在DOM事件规

javascript - 使用 Webpack 将 SVG 附加到 DOM

目前,我的公司在我们的AngularJS网络应用程序的index.html中包含一个相当大的SVGSprite图,其中包含各种图标。主SVG由CSS隐藏,我们通过按ID选择它们来显示SVG中的各个图标:我们现在正尝试通过拆分SVG并将生成的部分内联到需要它们的页面上来减少我们网站的加载时间。由于我们也转向Webpack来捆绑我们的应用程序,我们希望在Angular模块中指定特定SVG文件的依赖项,然后让Webpack将SVG的内容(可能包装在div中)插入DOM.有没有办法用现有的装载机实现这一目标?我找到了基本上导出SVG内容的raw-loader。但是,我不知道如何将它与另一个将插