在JavaScript中,如何检查元素是否真的可见? 我不只是在检查visibility和display属性。 我的意思是,检查元素不是 visibility: hidden或display: none 在另一个元素之下 滚动屏幕的边缘 由于技术原因,我不能包含任何脚本。 但是,我可以使用Prototype,因为它已经在页面上了。
这是之前在这里讨论的: 如何使用Jquery将一个元素添加到页面时执行一个操作? 响应者build议每当div添加到页面时触发一个自定义事件。 不过,我正在编写Chrome扩展程序,无法访问页面源代码。 我在这里有什么select? 我想在理论上,我可以使用setTimeout来持续search元素的存在,并添加我的动作,如果元素在那里。
在通过标准DOM处理XML时,序列化后的属性顺序不能保证。 最后,我使用标准的Java XML Transform API来序列化输出。 不过我确实需要保留一个命令。 我想知道在Java中是否存在任何可能性来保持通过DOM API处理的XML文件的属性的原始顺序,或者以任何方式强制执行命令(也许通过使用替代的序列化API来让您设置类财产)。 在我的情况下,处理可以减less使用一堆属性来改变一系列相同元素的一些属性(不是全部)的值,也可以插入更多的元素。 有没有“简单”的方法,或者我必须定义我自己的XSLT转换样式表来指定输出和改变整个inputXML文件? 更新我必须感谢你的答案。 现在的答案似乎比我预料的更为明显。 我从来没有注意到属性顺序,因为我以前从来没有需要它。 要求属性顺序的主要原因是生成的XML文件看起来不一样。 目标是一个configuration文件,其中包含数百个警报(每个警报由一组属性定义)。 这个文件通常不会随着时间的变化而变化,但是保持它的顺序是很方便的,因为当我们需要修改某些东西的时候,它会被手工编辑。 现在有些项目需要对此文件进行轻微的修改,例如将其中一个属性设置为客户特定的代码。 我开发了一个小应用程序,将原始文件(对所有项目通用)与每个项目的特定部分(修改某些属性的值)进行合并,以便项目特定的文件获取基本文件的更新(新的警报定义或一些属性值错误修正)。 我要求有序属性的主要动机是能够通过文本比较工具(例如Winmerge)再次检查应用程序的输出。 如果格式(主要是属性顺序)保持不变,则很容易发现差异。 我真的认为这是可能的,因为XML处理程序(如XML Spy)允许您编辑XML文件并应用一些sorting(网格模式)。 也许我唯一的select是使用这些程序之一来手动修改输出文件。
我想模拟点击一个锚点标签与所有额外的东西,如正确的目标处理。 锚点的DOM对象似乎有一个“[click()] [3]”方法,但不是所有的浏览器都支持这个方法。 Firefox会抛出这个错误: 错误:anchorObj.click不是一个函数 它在Opera 10和Konqueror上的工作也很奇怪,当它在一个周围的div的onclick处理程序中被调用时会造成无限的点击。 我猜只有IE8可以正常工作。 无论如何,我不希望它,因为主要浏览器大多有问题。 我在Mozilla论坛中为Firefoxfind了这个备用解决scheme: var evt = document.createEvent("MouseEvents"); evt.initMouseEvent("click", true, true, window, 0, 0, 0, 0, 0, false, false, false, false, 0, null); anchorObj.dispatchEvent(evt); 这对我来说似乎太难看又笨拙。 我不知道它是多么兼容,我想尽可能避免编写浏览器特定的代码。 我不能使用location.href = anchorObj.href; 因为它不处理“目标”属性。 我可以根据目标的价值做一些硬编码,但是我也想避免这种情况。 有build议切换到JQuery,但我不知道如何处理目标属性,因为我以前没有用过它。
我有一个代表特殊IFrame的原型。 该原型有一个名为GoToUrl(…)的函数,可以在IFrame中打开给定的URL。 我的问题是:如何创build一个“InternalDOM”属性,并使该属性引用IFrame内的“窗口”对象(根DOM对象)? 以这样的方式:如果我的IFrame公开了一个页面,其中有一个对象X的“窗口”对象,我可以这样做: MyFrameObject.GoToUrl(pageXurl); MyFrameObject.InternalDOM.X 任何帮助,将不胜感激。 PS:我会接受不一定与jQuery相关的答案,但我更喜欢jQuery解决scheme。
你能告诉我,如果有任何DOM APIsearch具有给定属性名称和属性值的元素: 就像是: doc.findElementByAttribute("myAttribute", "aValue");
问题是,使用innerHTML比较concatination并将文本节点附加到现有节点。 现场发生了什么? 我到目前为止的想法: 我猜这两个都在造成“ReFlow”。 后者(追加一个文本节点),据我所知,也导致了一个完整的DOM重build(正确的?他们都这样做?)。 前者似乎有一些其他的讨厌的副作用,如导致以前保存的引用到我正在修改innerHTML的节点的子节点,不再指向“当前的DOM”/“正确版本的子节点”。 相反,在追加儿童时,引用似乎保持不变。 为什么是这样? 我希望你们能为我解决这个问题,谢谢!
有没有什么办法可以检查一个元素是否在纯JS(没有jQuery)中可见? 因此,例如,在此页面中:如果您将鼠标hover在交易上(在顶部菜单上),则会出现交易窗口,但在开始时并未显示交易窗口。 它在HTML中,但不可见。 所以,给定一个DOM元素,我该如何检查它是否可见? 我试过: window.getComputedStyle(my_element)['display']); 但似乎没有工作。 我不知道应该检查哪些属性。 在我看来: display !== 'none' visibility !== 'hidden' 任何其他我可能会失踪?
我已经build立了一个基本的数据input应用程序,允许用户浏览iframe中的外部内容,并从同一页面快速input数据。 其中一个数据variables是URL。 理想情况下,我想能够加载的JavaScript的iframes当前url到一个文本框。 我现在意识到,由于安全问题,这不会发生。 有没有人在服务器端做过任何事情? 或了解浏览器控件中的任何.Net浏览器。 最终目标是给用户提供一个简单的方法来提取他们在iframe中查看的页面的URL。它不一定是一个iframe,浏览器中的浏览器将是理想的。 谢谢,亚当
我想了解jQuery对象和DOM元素之间的关系.. 当jQuery返回一个元素时,它会在alert中显示为[object Object] 。 当getElementByID返回一个元素时,它显示为[object HTMLDivElement] 。 那究竟是什么意思? 我的意思是这两个对象有区别? 还有什么方法可以对jQuery对象与DOM元素进行操作? 单个jQuery对象可以表示多个DOM元素吗?