这不是一个现实世界的问题,我只是想了解如何创造承诺。 我需要了解如何为不返回任何内容的函数做出承诺,比如setTimeout。 假设我有: function async(callback){ setTimeout(function(){ callback(); }, 5000); } async(function(){ console.log('async called back'); }); 如何创build一个承诺, async可以在setTimeout准备好callback()之后返回? 我想包裹它会带我到某个地方: function setTimeoutReturnPromise(){ function promise(){} promise.prototype.then = function() { console.log('timed out'); }; setTimeout(function(){ return ??? },2000); return promise; } 但我无法超越这个想法。
我有一个div设置为contentEditable和“ white-space:pre ”样式,所以它保持像linebreaks的东西。 在Safari,FF和IE中,div看起来很像,工作原理也一样。 一切都很好。 我想要做的是从这个div中提取文本,但以这种方式不会丢失格式 – 特别是换行符。 我们正在使用jQuery,其text()函数基本上是一个预定义的DFS,并将DOM分支中的所有内容粘合到一起。 这会丢失格式。 我看了一下html()函数,但是似乎所有三个浏览器在我的contentEditable div中都会在幕后生成实际的HTML。 假设我把这个input到我的div中: 1 2 3 这是结果: Safari 4: 1 <div>2</div> <div>3</div> Firefox 3.6: 1 <br _moz_dirty=""> 2 <br _moz_dirty=""> 3 <br _moz_dirty=""> <br _moz_dirty="" type="_moz"> IE 8: <P>1</P><P>2</P><P>3</P> 啊。 这里没什么很一致的。 令人惊讶的是,MSIE看起来是最健康的! (大写P标签和所有) 该div将dynamic设置样式(字体,颜色,大小和alignment),这是使用CSS完成的,所以我不确定我是否可以使用pre标记(在我使用Google发现的某些页面上提到过)。 有谁知道任何JavaScript代码和/或jQuery插件或从contentEditable div中提取文本的方式,以保留换行符? 如果我不需要,我宁愿不重新创build一个parsing轮。 更新:我从jQuery 1.4.2中删除了getText函数,并修改了它的空白大部分完好无损(我只chnaged一行,我添加一个换行符); function extractTextWithWhitespace( elems ) { var […]
我必须开发一个将由第三方网站使用的小部件。 这不是要在社交网站上部署的应用程序。 我可以给网站的人一个链接,作为一个iframe的src,或者我可以开发它作为一个JavaScript的请求。 有人可以告诉我两种方法(IFrame与JS)之间的权衡?
我知道有很多问题类似的问题。 但没有人真正解决我的问题。 我试图build立一个指令,当鼠标在当前元素之外单击时将执行一个expression式。 为什么我需要这个function? 我正在build立一个应用程序,在这个应用程序,有3下拉菜单,5下拉列表(如select)。 所有这些都是angular度指令。 我们假设所有这些指令是不同的。 所以我们有8个指令。 他们都需要一个相同的function:当点击元素旁边时,需要隐藏下拉菜单。 我有2个解决scheme,但都得到了问题: 答案A: app.directive('clickAnywhereButHere', function($document){ return { restrict: 'A', link: function(scope, elem, attr, ctrl) { elem.bind('click', function(e) { // this part keeps it from firing the click on the document. e.stopPropagation(); }); $document.bind('click', function() { // magic here. scope.$apply(attr.clickAnywhereButHere); }) } } }) 以下是解决schemeA的示例: 单击此处 当你点击第一个下拉菜单,然后工作,然后点击第二个input,第一个应该隐藏,但不是。 解决schemeB: […]
jQuery中有哪些标准问题或编码模式会导致内存泄漏? 我已经看到了一些与StackOverflow上的ajax()调用或jsonp或DOM删除相关的问题。 大部分的jQuery内存泄漏问题都集中在特定的问题或浏览器上,并且在jQuery中列出标准的内存泄漏模式会很好。 这里有一些关于SO的相关问题: 为什么jQuery泄漏内存如此糟糕? 简单的jQuery Ajax调用在Internet Explorer中泄漏内存 涉及jQuery Ajax请求的内存泄漏 networking资源: 如何使用jQuery.data将对象和数据附加到DOM,以避免内存泄漏问题 JavaScript中的内存泄漏模式
这似乎应该是非常简单的; 但是,经过两个小时的阅读和试错,没有成功,我承认失败,问你们! 我正在尝试使用Mocha和Should.js来testing一些JavaScript函数,但是我遇到了范围问题。 我把它简化为最基本的testing用例,但是我无法得到它的工作。 我有一个名为functions.js的文件,它只包含以下内容: function testFunction() { return 1; } 和我的tests.js (位于同一个文件夹中)内容: require('./functions.js') describe('tests', function(){ describe('testFunction', function(){ it('should return 1', function(){ testFunction().should.equal(1); }) }) }) 这个testing失败了一个ReferenceError: testFunction is not defined 。 我可以看到为什么,因为我发现的大多数示例都将对象和函数附加到Node global对象,或者使用module.exports将其module.exports – 但是使用这些方法中的任何一种都意味着我的函数代码会在标准浏览器情况下抛出错误,那些对象不存在。 那么,如何在不使用特定于Node的语法的情况下访问我的testing中单独的脚本文件中声明的独立函数呢?
哪些Web浏览器/版本支持document.activeElement ? 这个属性可以让你看到哪个元素是活动/有焦点。 有什么主要的陷阱/实现之间的差异?
我正在开发一个网页,根据下一步或后面的动作,我做相应的animation,问题出现在使用pushstate的时候。 当我收到事件时,我怎么知道用户是否使用Pushstate API点击了回退或者转发历史button?还是我必须自己实现一些东西?
我想知道什么时候该用 Object.defineProperty 为对象创build新的属性。 我知道,我可以设置的东西 enumerable: false 但是你什么时候需要这个呢? 如果你只是设置一个属性 myObject.myprop = 5; 其描述符都设置为true,对吗? 实际上,当你们对.defineProperty()进行冗长的调用以及出于什么原因时,我更加好奇。
有没有像jsfiddle.net离线工具使用jsfiddle.net的方式没有互联网的 JavaScript,HTML,CSS?