Tag: DOM

如何使用JavaScript访问CSS生成的内容

我使用CSS的counter和content属性生成我的标题和数字的编号: img.figure:after { counter-increment: figure; content: "Fig. " counter(section) "." counter(figure); } 这个(假定适当的浏览器)给出了一个很好的标签“图1.1”,“图1.2”等任何图像之后。 问题:我如何从Javascript访问这个? 这个问题是双重的,我想访问某个计数器(在某个DOM节点)的当前值或 CSS生成的内容(在某个DOM节点上)的值, 或者明显地,这两个信息。 背景:我想附加链接反向参考数字适当的数字,如下所示: <a href="#fig1">see here</h> ————————^ " (Fig 1.1)" inserted via JS 据我所知,可以归结为这个问题:我可以通过getComputedStyle访问content或counter-increment : var fig_content = window.getComputedStyle( document.getElementById('fig-a'), ':after').content; 但是,这不是实时值,而是样式表中声明的值。 我找不到任何接口来访问真正的实时价值。 在计数器的情况下,甚至没有一个真正的CSS属性来查询。 编辑:通过DOM规范挖掘越来越深,我find了DOM Level 2样式计数器接口 。 这似乎a)允许访问当前的计数器值和b)至less在Firefox中实现。 但是,我不知道如何使用它。 我目前的做法在这个Firebug输出后不幸地死了: // should return a DOM 2 Counter interface implementation… […]

在Javascript中拦截粘贴事件

有没有办法拦截JavaScript中的粘贴事件,并获取原始值,更改它,并将关联的DOM元素的值设置为修改后的值? 例如,我有一个用户试图复制和粘贴一个string中的空格,string的长度超过了我的文本框的最大长度。 我想拦截文本,删除空格,然后使用更改值设置文本框的值。 这可能吗?

如何按类名获取元素?

使用JavaScript,我们可以使用以下语法来获取元素ID: var x=document.getElementById("by_id"); 我试图按照类来获取元素: var y=document.getElementByClass("by_class"); 但是它导致了错误: getElementByClass is not function 我怎样才能得到它的类的元素?

如何用JavaScript代替DOM元素?

我正在寻找replaceDOM中的元素。 例如,我想用“SPAN”代替“A”元素。 我将如何去做呢?

使用Javascript获取下一个/上一个元素

如何获得html中使用javascript的下一个元素? 假设我有三个div ,我得到一个在js代码中的引用,我想得到哪个是下一个div,哪个是前一个div。

HTML“覆盖”,允许点击落在它后面的元素

我试图覆盖网页顶部的一个元素(绘制任意graphics),我已经到了可以将它堆叠在一切元素之上的点,但是这阻止了用户点击任何链接/button/等。 有没有办法让其内容浮动在一切之上(它是半透明的,所以你仍然可以看到后面的内容)并让用户与它下面的图层进行交互? 我发现了很多关于DOM事件模型的信息,但是没有一个能够解决button和其他“本地”控件从来没有得到点击的问题。

jQuery中width,innerWidth和outerWidth,height,innerHeight和outerHeight的区别是什么?

我写了一些例子,看看有什么不同,但是他们显示宽度和高度相同的结果。 <html> <head> <script type="text/javascript" src="jquery.js"></script> <script type="text/javascript"> $(document).ready(function(){ var div = $('.test'); var width = div.width(); // 200 px var innerWidth = div.innerWidth(); // 200px var outerWidth = div.outerWidth(); // 200px var height = div.height(); // 150 px var innerHeight = div.innerHeight(); // 150 px var outerHeight = div.outerHeight(); // 150 px }); </script> […]

HTMLselect元素closures时是否会触发DOM事件?

我正在寻找一个DOM事件,我可以通过JavaScript来监听,当一个select元素被打开(但没有任何选项改变),然后点击select元素,在页面的其他地方(任何地方)closures。 这不是selectblur事件,因为select保留焦点。 同样,它不是某个其他元素或文档的focus事件,也不是click或click窗口,文档或主体。 这不是select的change事件,因为select中的选项没有被更改。 我不关心传统的Internet Explorer,只需要在符合标准的现代浏览器中工作即可。 虽然专有的黑客可能值得了解。 我创build了一个JSFiddle来演示这个问题: http : //jsfiddle.net/premasagar/FpfnM/ 点击“结果”面板上的select框 单击标记为“HERE”(或其他任何地方)的文本,只需单击一下,看是否有任何事件添加到日志中。 最新的Chrome或Firefox中没有发生任何事件。 所以问题是: 什么JavaScript可以被添加,以获得点击select框时logging的事件? (我在这里问了一个类似的,但不同的问题: iOS上的JavaScript:打开HTMLselect元素 )

在IE中DOMNodeInserted相当于?

除了使用计时器计算随时间变化的元素数量并寻找变化之外,我想不出一个更好的方法来模拟这个事件。 是否有某种专有的IE版本的DOMNodeInserted? 谢谢。

<iframe>跨域的JavaScript访问父DOM?

我控制embedded在另一个域的页面中的iframe的内容。 有没有什么办法在我的iframe中的JavaScript来更改父级的DOM? 例如,我想让我的iframed脚本添加一堆html元素到父DOM。 这似乎是一个很高的顺序 – 思想? 编辑:存在一种称为“ 片段ID消息传递 ”的技术,这可能是在跨域iframe之间进行通信的一种方式。 编辑:另外,Firefox 3.5,Opera,Chrome(等)似乎采用html5 “postMessage”api ,它允许帧,iframe和popup窗口之间的安全,跨域数据传输。 它像一个事件系统一样工作。 IE8支持这个function,显然,这可能有点令人惊讶。 总结:不,您不能直接访问/编辑另一个域中的页面的DOM。 但是你可以和它沟通,它可以合作做出你想要的改变。