Tag: javascript

如何获得最大文档滚动值

我正在制作一些插件,我需要获得文档的最大scrollTop值。 最大scrollTop值是2001 ,但$(document).height()返回2668和$(‘body’)[0].scrollHeight给我undefined 。 如何通过javascript / jquery获取2001 ?!

用于检测元素位置何时更改的jQuery事件

我想知道是否有一个jQuery事件,我可以用它来确定特定DIV的top属性何时发生了变化。 例如,我在DIV之上有隐形内容。 当该内容变得可见时,DIV向下移动。 我想捕获该事件,然后使用offset()函数来获取X / Y坐标。

Jquery *编译器*可以吗?

当我看到这个问题时,我认为如果可以编写jQuery 编译器会有所帮助。 现在,通过编译器 ,我的意思是接受jQuery代码并输出最终执行的原始javascript代码。 这就是我对jQuery代码块执行的看法: 调用jQuery函数并将参数传递给它 该函数调用原始javascript函数并将收到的参数传递给它 新调用的函数执行预期的操作 我知道这是一个非常简化的模型,它可能会复杂得多,但我认为复杂性减少到第2步和第3步重复,不同的原始js函数被调用,每次都用全部或部分参数/以前的结果。 如果我们订阅该模型,那么我们可能会提出使jQuery函数执行双重任务的方法: 他们已经做了什么 记录他们以raw_function(passed_params)forms所做的raw_function(passed_params) 我是否做出了一些错误的假设,这会使这不可能? 有关Firebug的探查器如何尝试获取函数名称的任何想法? 可以在这里使用吗? 编辑 我在想的是制作一个带输入/输出的黑盒子: normal jquery code → [BB] → code you’d write if you used no library 我称之为编译器,因为您编译了一次然后将使用生成的代码。 我认为它至少可以用于教育,也可能是其他用途。 人们说这将占用少量代码并输出大量数据; 就我看来,这并不违背预期的目的 人们说我会在页面渲染中添加一个额外的,不必要的步骤,只有最终使用的结果代码(并且可能只用于学习),这是不正确的。 人们说javascript函数和jquery函数之间没有一对一的关系,暗示这样的转换器太复杂了,可能不值得付出努力。 有了这个,我现在同意了 。 谢谢你们!

使用js / jquery检测flash播放器的现代或非弃用方式?

首先,抱歉在这里重新提出这个问题。 我已经尝试了两天如何使用javascript / jquery来完成这项工作,我想我已经阅读了所有堆栈溢出和其他博客相关的post,所以请不要将其标记为重复,因为我无法使用从2012年到2017年的过时脚本。 我有一个页面重定向到第三方电子学习平台,其中一些内容需要闪存才能工作。 许多用户不关心他们的机器上安装了哪些软件(多么新的,呵呵)所以我需要检测它并显示典型消息“请安装/更新flash player点击这里”,但我找不到“现代“脚本/方式,在任何地方,如果可能的话,简化。 我尝试过的所有脚本都已弃用,或者在所有浏览器中都返回false,即使我安装了最新版本的Flash并处于活动状态。 Anny帮助将不胜感激(除了链接到现在不起作用的旧post或脚本,显然)。 非常感谢!

JavaScript / HTML5 / jQuery拖放上传 – “未捕获的TypeError:无法读取未定义的属性’文件’”

在我有限制的JavaScript经验之前,我会告诉你。 目前,我有JavaScript代码: $(‘#xhr-filebox’).bind({ “dragover”: HandleDragEvent, “dragleave”: HandleDragEvent, “drop”: HandleDropEvent }); function HandleDropEvent(e){ var files = e.target.files || e.dataTransfer.files; UploadFile(files[0]); } (省略了一些代码,但如果你要求,我会添加更多代码) ……和HTML: …or click me to pick one. 但是,当我将文件拖入其中时,Chrome JS控制台会说: 未捕获的TypeError:无法读取未定义的属性“文件” 但是,从文件输入读取时,它可以获取FileList对象。 奇怪的是,当我记录事件参数(console.log(e))时,它将其记录为f.event,而在我的类似脚本中,它将其记录为MouseEvent(屏幕截图: http://i.stack.imgur .com / 3krcT.png ) 与jQuery中的bind()函数不同,它使用getElementById()返回的DOM对象的addEventListener()函数,IE这是纯JavaScript。 我尝试过这种方法,但没有新的事情发生。

禁用按钮仍然使用“.click()”触发

似乎禁用按钮 “onclick”function在触发程序时仍然被触发,例如: 0 function save(){ var count = parseInt($(‘#counter’).html()); $(‘#counter’).html(++count); } function byPassDisabled(){ $(‘#saveButton’).click(); } 见http://jsfiddle.net/WzEvs/363/ 在我的情况下,键盘快捷键绑定到触发按钮上的“.click()”的function。 我发现必须禁用shorcuts或检查按钮是否已被禁用非常烦人。 我更喜欢解决此问题的一般解决方案。 但为什么? 这种行为对我来说似乎不公平。 任何解决方法?

jQuery函数用逗号和小数格式化数字

我正在使用以下函数来格式化数字作为用户类型。 它将每3个数字插入一个逗号。 例: 45696.36变为45,696.36 。 但是,我遇到了问题。 如果小数点后的数字超过3位数,则开始向它们添加逗号。 例如: 1136.6696变为1,136.6,696 。 这是我的function: $.fn.digits = function(){ return this.each(function() { $(this).val( $(this).val().replace(/[^0-9.-]/g, ”) ); $(this).val( $(this).val().replace(/(\d)(?=(\d\d\d)+(?!\d))/g, “$1,”) ); }) } 我如何解决这个问题,以便在小数点后停止逗号? 我正在使用jQuery 1.8。 谢谢!

动态加载时获取当前正在执行的js文件的URL

所以我正在尝试动态加载脚本并找出加载该脚本的URL路径。 如果脚本是静态加载的( 如何获取当前正在执行的javascript代码的文件路径),有些人给了我一个非常棒的解决方案来解决这个问题。 但我需要一个动态加载的解决方案。 例如: $(function() { $.getScript(“brilliant.js”, function(data, textStatus) { // do nothing }); }); “brilliant.js”的地方: var scripts = document.getElementsByTagName(“script”); var src = scripts[scripts.length-1].src; alert(“THIS IS: “+src); 理想情况下,这应该打印出“brilliant.js”或“⟨hostname+basepath⟩/ brilliant.js” 目前,brilliant.js适用于静态包含的脚本,但不适用于动态包含的脚本(如$ .getScript)。 有人有主意吗? dom中是否存储了所有已加载的脚本? 编辑:Andras提供了一个非常好的解决方案,虽然它可能只适用于jQuery。 因为那可能是最受欢迎的图书馆,而且我肯定会使用它。 它也可以扩展到其他库。 这是我的简化版本: var scriptUri; curScriptUrl(function(x) { scriptUri = x; alert(scriptUri); }); function curScriptUrl(callback) { var scripts = document.getElementsByTagName(“script”); var […]

jQuery – DIV通过滚动运动和粘贴位置移动到窗口的顶部和底部

可能已经有一个jQuery插件可以实现这一点,但我找不到一个完全按照我所做的去做。 如果有的话,请指教我,谢谢。 我的问题是我有很长的页面内容,当您在页面底部滚动时,我的侧边栏不可见。 因此,当您向上和向下滚动页面时,我想让我的#sidebar div保持在浏览器窗口的顶部和底部。 我的侧边栏高度比典型的屏幕分辨率长,所以我需要侧边栏的底部粘在浏览器窗口的底部以及浏览器的顶部。 因此,当您开始向下滚动时,侧栏会像平常一样滚动,但是当您到达侧栏的末端时,它会粘住并且不会滚动,当您开始向上滚动时,侧边栏将会跟随,直到侧边栏的顶部到达浏览器,然后它坚持。 反之亦然。 这可能吗? 我创建了一个简单的设计布局的jsfiddle ,它是核心。 我在边栏上添加了一个虚线边框,所以你现在应该选择侧边栏。 http://jsfiddle.net/motocomdigital/7ey9g/5/ 任何建议,或者你知道在线教程或演示,都会非常棒! UPDATE 请看@Darek Rossman的这个尝试 http://jsfiddle.net/dKDJz/4/ 他有基本的想法。 但向上滚动会使其突然移动到顶部。 我需要使用向上/向下滚动的侧边栏来保持流畅。 但坚持窗户的顶部或底部。 当页眉/页脚在视口中时,它也不应固定定位,因此它不会叠加。 谢谢

读取url JQuery中的GET变量

对不起另一个“简单”的问题,但是有一种简单的方法可以从URL中读取GET变量。 例。 我有一个urlhttp://www.domain.com/page.php?var1=1在我的情况下,我只有1个变量,即var1或var2 (变量可以改变但每个url只有一个)。 我看到的所有tuts都与数组有关,而不是“单例”。我知道数组解决方案可能更好,但这只是一个简单的单个get变量。 有什么建议? 提前致谢