Tag: javascript

从onchange触发.click()时,IE9上的“SCRIPT5访问被拒绝”错误

我们希望减少用户在我们网站上传文件所需的步骤数; 所以我们使用jQuery打开并使用下面的标记回发文件(简化): Change profile picture 这在Firefox和Chrome中运行得非常好; 单击链接时打开文件对话框,并在选择文件时触发回发。 但是在加载文件上传并且用户选择了文件后的IE9中; 在OnChange工作的内容我收到“SCRIPT5访问被拒绝”错误。 我已经尝试设置任意超时,设置间隔以检查文件是否无效。 还有许多与此有关的其他问题; 但是没有一个看起来有一个不错的答案(一个说文件对话框是透明的,并将鼠标hover在按钮后面!) 有没有人解决这个问题? 或者我是否必须为IE用户提供按钮?

Jquery删除元素内的所有事件处理程序

我有一个div元素,里面有几个元素,比如按钮等,它们都附有事件处理程序。 我知道有可能去: $(“#button1”).off() 要删除按钮的处理程序,但如果可能的话我想做这样的事情: $(“#div1”).removeChildHandlers(); 在JQuery中有一个本机函数来执行此操作,还是我必须将它们循环所有元素并逐个删除?

如何知道DOM元素何时移动或resize

我想知道是否有一个要侦听的DOM事件告诉我DOM元素移动时是重新定位还是在页面上resize。 我不是在谈论被拖放的元素。 一个例子是如果一个页面上有三个项目的列表,我使用JS从页面中删除前两个列表项之一(或隐藏它或其他),我想附加一个处理程序来运行时第三个列表项在页面中向上移动。 我正在使用jQuery,所以可以接受简单的javascript或jQuery答案。 也许在元素级别没有移动/位置/resize事件,所以如果有一个页面/ doc级别事件会告诉我该页面被重新绘制,我可以检查是否需要再次调用一个函数? 背景 我在一个元素上放置了一个透明div,同时调用webservice来删除该元素。 由于我需要绝对定位覆盖div,我希望它能够跟踪它最初覆盖的元素。 实际上将其锚定到基本元素。

如何在更改元素可见性的同时冻结Web浏览器的重绘?

我到目前为止还没有JS开发人员(事实上,根本不是开发人员:)但我想尝试编写一个小的Greasemonkey脚本来隐藏某个网页上的几个元素。 一旦我开始轻拍它,我决定使用jQuery,只是为了让它更容易。 一切顺利,脚本正在运行,但现在已经准备就绪,我开始怀疑细节。 作为脚本的一部分,我需要找到特定元素并将其与其兄弟姐妹的前一个和下一个一起隐藏起来。 我最终没有那么可读,但工作线: $(‘div#some-weird-box’).prev().toggle(w).next().toggle(w).next().toggle(w); 我在这里担心的是,我将在三个不同的步骤中删除三个独立的div。 这会导致浏览器三次“重绘”页面,对吗? 这不是三个div的问题,当有更多元素时,它可能会开始变得重要。 所以,我的问题是 – 有没有办法告诉浏览器“停止刷新/重绘页面”? 如果有,我可以使用它,隐藏任意数量的元素,然后要求浏览器更新屏幕。

在追加元素后刷新DOM

解决了: 主要问题是: 我觉得jquery太老了 解决了问题:) 添加DOM后为什么警报不起作用? 点击它后应该显示“bla bla”。 test $(document).ready(function() { $(‘#main_body’).append(“HelloClick”); $( “#but” ).on( “click”, function() { alert( “bla bla” ); }); });

如何在javascript和/或php中获取访问者的屏幕分辨率?

我想知道访问我的页面的访问者的屏幕分辨率,所以我可以正确地制作jquery厚箱封面大约75%的屏幕。 我非常感谢您提出解决问题的方法或帮助我解决问题!

如何从jQuery的select选项中获取属性?

我有HTML中的下一个选择框 : In progress Not started Done Failed 我想从所选选项中读取属性值。 如果只是为了获取价值,那很简单: var value = $(‘#listbox-taskStatus’).val(); 但是,如果我想从所选选项中获取属性值,我该怎么办? 我知道, .attr()必须有所帮助,但是当我尝试使用它时,我得到的结果不正确。 我试过下一个: var status = $(‘#listbox-taskStatus option’).attr(‘status’); 但是,尽管事实上我选择了不同的选项,但返回的值始终为0 。 怎么了,怎么解决我的问题?

jQuery.each实现与本机Array.forEach不同

有没有人为什么是优秀的jQuery.each函数设计与(现在)原生Array.forEach ? F.ex: var arr = [‘abc’,’def’]; arr.forEach(function(entry, index) { console.log(entry); // abc / def }); 这绝对有道理。 但是jQuery选择将index作为第一个参数: $.each(arr, function(index, entry) { console.log(entry); }); 有谁知道这个设计决定背后的原因? 我总是广泛地使用$.each ,但它始终告诉我索引是第一个参数,因为它很少使用。 我知道jQuery通过this实现了直接引用,但是如果你这样做会非常困惑: ​var arr = [‘abc’,’def’]; $.each(arr, function() { console.log(this === ‘abc’); // false both times, since this is a String constructor });​​​​​​​​​​​​​​​​​​​​​​​​​​​​​ 并不是让我感到困扰,我更喜欢使用原生的polyfills来获得最常见的新数组函数,但我一直对设计决策感到好奇。 也许它是在浏览器实现原生forEach并且传统支持阻止他们更改它之前的较旧时间制作的,或者……? 或者,也许是这样设计的,因为它也可以在本机对象上使用,而不是把关键值放在回调中的“有意义”……? 旁注:我知道underscore.js(也许还有其他库)反过来(更类似于原生函数)。

页面刷新后保留JavaScript变量值?

我正在使用一个项目,其中变量被赋值一个值,我需要刷新浏览器时的值。有什么方法可以获得该值?

强制地址栏显示在移动Chrome应用中

我正在开发一个网络应用程序。 大多数应用都禁用了滚动,但是一个全屏面板需要可滚动。 问题: 如果用户位于可滚动的应用程序部分中,并向下滚动,则地址栏将消失。 如果在地址栏消失后,用户通过单击固定位置菜单栏上的X决定退出该面板,则地址栏永远不会被触发(因为向上滚动不会发生),因此用户陷入滚动状态-disabled address-bar-less state。 我的问题: 是否可以强制触发地址栏以在Google Chrome中显示? 链接! JSBin输出 JSBin代码 顺便说一句 简单地设置$(window).scrollTop(0)不会这样做。 使用开发工具进行模拟不起作用。 您需要在Chrome应用中的移动设备中打开它。 谢谢! 示例如下: 不允许滚动,地址栏显示 ) 滚动允许,地址栏显示 用户滚动,地址栏隐藏 返回滚动禁用div,隐藏地址栏