Tag: JavaScript

如何检测浏览器的协议处理程序?

我创build了一个自定义URL协议处理程序。 http:// mailto:// custom:// 我已经注册了一个WinForms应用程序来做出相应的回应。 这一切都很好。 但我希望能够正常处理用户没有安装自定义URL协议处理程序的情况。 为了能够做到这一点,我需要能够检测浏览器的注册协议处理程序,我会从JavaScript假设。 但我一直无法find一个方法来查询信息。 我希望find解决这个问题的办法。 感谢您可以分享的任何想法。

如何在JavaScript中使用Revealing模块模式

我偶然发现了这个post: JavaScript的揭示模块模式 。 我想在我的项目中使用这个。 让我们想象我有一个函数abc ,我在我的主JavaScript文件中调用该函数。 这种模式是否使事情有所不同? 任何人都可以给我看一个这种模式的基本例子吗?

如何使用JavaScript检测Ctrl + V,Ctrl + C?

如何检测ctrl + v , ctrl + c使用Javascript? 我需要限制在我的textareas粘贴,最终用户不应该复制和粘贴的内容,用户只能在textarea中input文本。 如何做到这一点?

检查元素在DOM中是否可见

有没有什么办法可以检查一个元素是否在纯JS(没有jQuery)中可见? 因此,例如,在此页面中:如果您将鼠标hover在交易上(在顶部菜单上),则会出现交易窗口,但在开始时并未显示交易窗口。 它在HTML中,但不可见。 所以,给定一个DOM元素,我该如何检查它是否可见? 我试过: window.getComputedStyle(my_element)['display']); 但似乎没有工作。 我不知道应该检查哪些属性。 在我看来: display !== 'none' visibility !== 'hidden' 任何其他我可能会失踪?

JavaScript函数声明和评估顺序

为什么这些例子中的第一个不起作用,但所有其他的呢? // 1 – does not work (function() { setTimeout(someFunction1, 10); var someFunction1 = function() { alert('here1'); }; })(); // 2 (function() { setTimeout(someFunction2, 10); function someFunction2() { alert('here2'); } })(); // 3 (function() { setTimeout(function() { someFunction3(); }, 10); var someFunction3 = function() { alert('here3'); }; })(); // 4 (function() { setTimeout(function() { someFunction4(); […]

一个CORS POST请求从普通的javascript工作,但为什么不与jQuery?

我正在尝试创build一个“跨源”发布请求,并且我使用如下简单的Javascript工作: var request = new XMLHttpRequest(); var params = "action=something"; request.open('POST', url, true); request.onreadystatechange = function() {if (request.readyState==4) alert("It worked!");}; request.setRequestHeader("Content-type", "application/x-www-form-urlencoded"); request.setRequestHeader("Content-length", params.length); request.setRequestHeader("Connection", "close"); request.send(params); 但我想使用jQuery,但是我无法使它工作。 这就是我想要的: $.ajax(url, { type:"POST", dataType:"json", data:{action:"something"}, success:function(data, textStatus, jqXHR) {alert("success");}, error: function(jqXHR, textStatus, errorThrown) {alert("failure");} }); 这导致失败。 如果有人知道为什么jQuery不起作用,请让我们都知道。 谢谢。 (我使用的是jQuery 1.5.1和Firefox 4.0,而我的服务器正在响应一个正确的Access-Control-Allow-Origin头)

DOMContentLoaded和加载事件之间的区别

DOMContentLoaded和加载事件有什么区别?

如何等待一个元素存在?

我正在做一个Chrome扩展,我想知道:什么时候发现一个元素的最佳方式是什么? 使用普通的JavaScript,间隔,检查,直到存在一个元素,或者jQuery有一些简单的方法来做到这一点?

了解meteor发布/订阅

我有一个简单的应用程序设置,显示Projects列表。 我已经删除了autopublish包,以便我不会将所有内容发送到客户端。 <template name="projectsIndex"> {{#each projects}} {{name}} {{/each}} </template> 当autopublish开启时,这将显示所有的项目: if Meteor.isClient Template.projectsIndex.projects = Projects.find() 随着它被删除,我不得不另外做到: if Meteor.isServer Meteor.publish "projects", -> Projects.find() if Meteor.isClient Meteor.subscribe "projects" Template.projectsIndex.projects = Projects.find() 那么,说客户端的find()方法只search从服务器端发布的logging是否准确呢? 它一直在绊倒我,因为我觉得我应该只调用find()一次。

防止父元素的滚动?

我有一个“浮动工具箱” – 一个position:fixed; overflow:auto的div position:fixed; overflow:auto position:fixed; overflow:auto 。 工作得很好。 但是,当滚动到该框内(用鼠标滚轮)并到达底部或顶部时,父元素“接pipe”“滚动请求”:工具框后面的文档滚动。 – 这是烦人的,而不是用户“要求”。 我正在使用jQuery,并认为我可以用event.stoppropagation()停止这种行为: $("#toolBox").scroll( function(event){ event.stoppropagation() }); 它确实进入了这个function,但是仍然会传播(文档滚动) – 在SO(和Google)上search这个主题是非常困难的,所以我必须问: 如何防止滚动事件的传播/冒泡? 编辑: 工作解决scheme感谢amustill(和Brandon Aaron的mousewheel-plugin在这里: https://github.com/brandonaaron/jquery-mousewheel/raw/master/jquery.mousewheel.js $(".ToolPage").bind('mousewheel', function(e, d) var t = $(this); if (d > 0 && t.scrollTop() === 0) { e.preventDefault(); } else { if (d < 0 && (t.scrollTop() == t.get(0).scrollHeight – […]