我想要获得一个对象的绝对的X,Y在JavaScript页面上的位置。 我该怎么做? 我试过obj.offsetTop和obj.offsetLeft ,但这些只给出了相对于父元素的位置。 我想我可以循环,并添加父母的偏移量,及其父母的偏移,等等,直到我没有父母的对象,但似乎应该有一个更好的办法。 谷歌search没有太多,甚至SO网站search没有find任何东西。 另外,我不能使用jQuery。
我试图做一个button,这样当用户点击它时,鼠标button被按下时,它会改变它的样式。 如果在移动浏览器中触摸,我也希望它以类似的方式改变它的风格。 看似明显的事情是使用CSS:active伪类,但是这并不起作用。 我尝试过:专注,而且没有工作。 我试过:盘旋,它似乎工作,但它保持了我的手指离开button后的风格。 所有这些观察都在iPhone 4和Droid 2上。 有没有什么办法可以在手机浏览器(iPhone,iPad,Android和其他人)上复制效果? 现在,我正在做这样的事情: <style type="text/css"> #testButton { background: #dddddd; } #testButton:active, #testButton.active { background: #aaaaaa; } </style> … <button type="button" id="testButton">test</button> … <script type='text/javascript' src='http://code.jquery.com/jquery-1.6.1.min.js'></script> <script type='text/javascript'> $("*").live("touchstart", function() { $(this).addClass("active"); }).live("touchend", function() { $(this).removeClass("active"); }); </script> :活动的伪类适用于桌面浏览器,活动类适用于触摸浏览器。 我想知道是否有一个更简单的方法来做到这一点,而不涉及Javascript。
在JavaScript中克隆函数的最快方法是什么(有或没有它的属性)? 想到两个选项是eval(func.toString())和function() { return func.apply(..) } 。 但是我担心eval的性能,并且包装会使堆栈变得更糟,并且如果应用了很多或应用于已经包装的,可能会降低性能。 new Function(args, body)看起来不错,但是如何可靠地将已有的函数拆分为args和body,而JS中没有JSparsing器? 提前致谢。 更新:我的意思是能够做到 var funcB = funcA.clone(); // where clone() is my extension funcB.newField = {…}; // without affecting funcA
检查元素是否有滚动条的最快方法是什么? 有一件事情当然是检查元素是否大于其视口,这可以通过检查这两个值来轻松完成: el.scrollHeight > el.offsetHeight || el.scrollWidth > el.offsetWidth 但这并不意味着它也具有滚动条(所以它实际上可以被人类滚动)。 题 如何检查在一个跨浏览器和2个 JavaScript的滚动条(如在没有jQuery )的方式? 只有Javascript,因为我需要尽可能小的开销,因为我想写一个非常快速的jQueryselect器筛选器 // check for specific scrollbars $(":scrollable(x/y/both)") // check for ANY scrollbar $(":scrollable") 我想我将不得不检查overflow风格设置,但我如何以跨浏览器的方式做到这一点? 额外编辑 不仅overflow风格设置。 检查一个元素是否有滚动条并不像看起来那么微不足道。 上面写的第一个公式在元素没有边框的时候工作的很好,但是当它的确如此(特别是当边框宽度相当的时候), offset尺寸可以大于scroll尺寸,但是元素仍然可以滚动。 实际上,我们必须从offset减去边界以获得元素的实际可滚动视口,并将其与scroll维度进行比较。 备查 :scrollable jQueryselect器filter包含在我的.scrollintoview() jQuery插件中。 如果有人需要,可以在我的博客文章中find完整的代码。 即使它没有提供实际的解决schemeSoumya的代码相当大地帮助我解决了这个问题。 它指出了我正确的方向。
以下两个语句是否产生相同的输出? 有没有什么理由更喜欢一种方式? if (key in object) if (object.hasOwnProperty(key))
我在Ruby on Rails中使用了一些嵌套的布局,在其中一个布局中,我需要从div中读取string,并将其设置为文档的标题。 什么是正确的方式(如果有的话)来设置文档的标题? <script type="text/javascript"> $(document).ready(function() { // ??? }); </script>
我有以下数组。 var arr = [1,0,2]; 我想删除最后一个元素,即2。 我用了arr.slice(-1); 但它不会删除这个值。
当我尝试使用PhoneGap使用Socket.io时出现此错误: (在支持socket.io的iOS上) Origin null is not allowed by Access-Control-Allow-Origin. 这是因为我的应用程序是通过file://协议来提供的。 我能做些什么来解决这个问题? 谢谢!!
iPhone通过以下调用支持移动Safari中的地理位置: navigator.geolocation.getCurrentPosition( function(pos){ var lat = pos.coords.latitude; var long = pos.coords.longitude; }, function(){ /* Handler if location could not be found */ } ); 我想build立一个包含以下内容的设备列表: 开箱即用支持此function 通过升级支持此function,或者 支持与其他一些JavaScript代码保持同等的数据保真度。 我只熟悉我自己的设备,所以这是我的目录: 盒子外面: iPhone 3GS 支持,但只有更新 iPhone 3G iPhone 2G(?) PC或Mac电脑与Firefox 3.5 支持一些其他片段 ? 黑莓,Android手机等支持的程度是什么?
由于onloadfunction,我可以轻松预加载图像。 但它不适用于audio。 像Chrome,Safari,Firefox等浏览器不支持audio标签中的onloadfunction。 如何在Javascript中预加载声音而不使用JS库,也不使用或创buildHTML标签?