Tag: JavaScript

在JavaScript中删除URL中的片段w / out导致页面重新加载

背景:我有一个HTML页面,可以让你展开某些内容。 由于只有小部分的页面需要加载进行这种扩展,所以通过JavaScript完成,而不是通过指向新的URL / HTML页面。 然而,作为奖励,用户能够永久地固定到这样的扩展部分,即向其他人发送类似的URL http://example.com/#foobar 并为其他用户立即打开“foobar”类别。 这工作使用parent.location.hash ='foobar',所以部分是好的。 现在的问题是:当用户在页面上closures这样的类别时,我想再次清空URL片段,即将http://example.com/#foobar变成http://example.com/来更新固定链接显示。 但是,使用parent.location.hash = ''会导致重新加载整个页面(例如,在Firefox 3中),这是我想避免的。 使用window.location.href = '/#'将不会触发页面重新加载,但在URL中留下一些看上去很前卫的“#”号。 那么在stream行的浏览器中有没有一种方法可以在不触发页面刷新的情况下JavaScript去除包含“#”符号的URL定位符?

如何在对象上使用下划线的“交集”?

_.intersection([], []) 只适用于原始types,对不对? 它不适用于对象。 我怎样才能使它与对象(也许通过检查“ID”字段)? var a = [ {'id': 1, 'name': 'jake' }, {'id':4, 'name': 'jenny'} ] var b = [ {'id': 1, 'name': 'jake' }, {'id': 9, 'name': 'nick'} ] 在这个例子中,结果应该是: _.intersection(a, b); [{'id':1,'name':'jake'}];

如何将所有的HTML元素的孩子使用JavaScript的另一个家长?

想像: <div id="old-parent"> <span>Foo</span> <b>Bar</b> Hello World </div> <div id="new-parent"></div> 可以编写什么JavaScript来将所有子节点(包括元素和文本节点)从old-parent到没有jQuery的new-parent ? 我不关心节点之间的空白,虽然我希望能够赶上stream浪的Hello World ,但他们也需要按原样迁移。 编辑 要清楚,我想最终: <div id="old-parent"></div> <div id="new-parent"> <span>Foo</span> <b>Bar</b> Hello World </div> 从这是一个拟议的副本的问题的答案将导致: <div id="new-parent"> <div id="old-parent"> <span>Foo</span> <b>Bar</b> Hello World </div> </div>

jasmine:spyOn(obj,'method').CallFake or和.callFake?

我想在我的茉莉花testing中模拟testing数据。 这里有两个版本: // version 1: spyOn(mBankAccountResource, 'getBankAccountData').and.callFake(fakedFunction); // version 2: spyOn(mBankAccountResource, 'getBankAccountData').andCallFake(fakedFunction); 当我用浏览器(Chrome,Firefox)执行我的testing时,第一个版本可以正常工作。 但是,当我用phantomjs运行相同的testing时,我必须使用第二个版本。 否则,它会抱怨函数没有被定义。 这里是错误信息: // phantomjs (with version 1) TypeError: 'undefined' is not an object (evaluating 'spyOn(mBankAccountResource, 'getBankAccountData').and.callFake') at /home/phil/workspaces/world/basket.angular.ui/basket.angular.ui/test/bankaccount/BankAccountCtrlTest.js:65 at invoke (/home/phil/workspaces/world/basket.angular.ui/bower_components/angular/angular.js:3707) at workFn (/home/phil/workspaces/world/basket.angular.ui/bower_components/angular-mocks/angular-mocks.js:2149) undefined // Chrome (with version 2) TypeError: Object function () { callTracker.track({ object: this, args: Array.prototype.slice.apply(arguments) }); […]

Array.prototype.includes与Array.prototype.indexOf

除了改进的可读性之外,还有没有优于indexOf ? 他们看起来和我一样。 这有什么区别 var x = [1,2,3].indexOf(1) > -1; //true 和这个? var y = [1,2,3].includes(1); //true

页面中脚本标签的位置如何影响其中定义的JavaScript函数?

我读过你应该在<head>标签中定义你的JavaScript函数,但是<script>的位置(不pipe是在<head> , <body>还是任何其他标签)对JavaScript函数有什么影响。 具体来说,它是如何影响函数的范围和可以从哪里调用的?

什么是生产代码的一些很好的CSS和JS最小化?

我正在寻找一些最小化css和js文件的应用程序或网站。 理想情况下,他们可以一次一批或全部批次。

如何在AngularJSunit testing中模拟$ window.location.replace?

我有以下服务: angular.module("services") .factory("whatever", function($window) { return { redirect: function() { $window.location.replace("http://www.whatever.com"); } }; }); 如何在unit testing中模拟$window对象以防止在运行testing时重新加载页面? 我试过使用 spyOn($window.location, 'replace').andReturn(true); ,但它没有工作(仍然有"Some of your tests did a full page reload!"错误)和 $provide.value('$window', {location: {replace: jasmine.createSpy()}}) ,但我得到一个错误( Error: [ng:areq] Argument 'fn' is not a function, got Object )堆栈跟踪指向只有angular度自己的源,所以这是没有多大的帮助…

在Heroku中部署Rails 3.1项目时出现问题:无法findJavaScript运行时

我在部署一个rails 3.1testing版项目到heroku时遇到了麻烦。 问题发生在数据库迁移步骤。 当我跑时: heroku rake db:migrate 我收到错误消息: >耙中止! >找不到JavaScript运行时。 看到 > https://github.com/sstephenson/execjs >获取可用运行时的列表。 > / app / Rakefile:5 >(通过使用–trace运行任务来查看完整跟踪) >(在/ app) 但是我可以在本地成功运行应用程序,并且我已经安装了nodejs。 任何想法为什么? 这里我的gem名单: abstract (1.0.0) actionmailer (3.1.0.beta1) actionpack (3.1.0.beta1, 3.0.7) activemodel (3.1.0.beta1, 3.0.7) activerecord (3.1.0.beta1) activeresource (3.1.0.beta1) activesupport (3.1.0.beta1, 3.0.7) ansi (1.2.5) arel (2.1.0) bcrypt-ruby (2.1.4) builder (3.0.0, 2.1.2) bundler (1.0.13) coffee-script (2.2.0) […]

可见的窗口高度而不是$(window).height();

有没有办法从iframe获取整个页面的可见高度, $(window).height()给了我iframe的高度?