是否可以在类私有方法上使用Jasmine单元测试框架的spyon方法?
文档给出了这个例子,但这可以灵活用于私有函数吗?
describe("Person", function() {
it("calls the sayHello() function", function() {
var fakePerson = new Person();
spyOn(fakePerson, "sayHello");
fakePerson.helloSomeone("world");
expect(fakePerson.sayHello).toHaveBeenCalled();
});
});
Run Code Online (Sandbox Code Playgroud)
提前致谢
使用JS queryselectorall方法可以选择具有2个匹配类的特定标记名称的元素.
我有一个元素
<a class="classOne classTwo"></a>
Run Code Online (Sandbox Code Playgroud)
使用queryselectorall我可以选择一个类名:
document.querySelectorAll("a.classOne");
Run Code Online (Sandbox Code Playgroud)
怎么可以扩展所以我可以找到classOne和classTwo的所有标签?
document.querySelectorAll("a.classOne classTwo"); 正如所料,似乎没有用
提前致谢
我们的网站涉及一些生成叠加模态窗口的JavaScript.
但是有一个可访问性问题,一旦模态被触发,focus
它仍然在触发元素上而不在模态本身上.
这些模态可以包括各种html元素,标题,段落和表单控件.我想要的是重点开始模态中的第一个元素,所以最有可能是一个h4标签.
我已经探索过使用该focus()
函数但是这不适用于许多html元素.
一个想法是a
在窗口中添加一个空标签,可以获得焦点,但我不确定这种方法.
什么是使用Jasmine测试继承方法的最佳方法?
我只对测试它是否被调用感兴趣,因为我已经为基类设置了单元测试.
例如:
YUI().use('node', function (Y) {
function ObjectOne () {
}
ObjectOne.prototype.methodOne = function () {
console.log("parent method");
}
function ObjectTwo () {
ObjectTwo.superclass.constructor.apply(this, arguments);
}
Y.extend(ObjectTwo, ObjectOne);
ObjectTwo.prototype.methodOne = function () {
console.log("child method");
ObjectTwo.superclass.methodOne.apply(this, arguments);
}
})
Run Code Online (Sandbox Code Playgroud)
我想测试ObjectTwo的继承方法是否已被调用.
提前致谢.
我的页面#topLeft上有一个区域,其最小高度设置为它.
在#topLeft中我有一个#heroBanners部分,我想锚定到#topLeft的底部 - 使用position:absolute; 底部:0;
起初这个工作正常,但是当#topLeft应该展开时它不是,而heroBanner部分只是重叠它上面的内容.
我假设通过混合最小高度和绝对定位内容来调用问题?
任何想法如何绕过这个,代码如下:
<div id="topLeft">
<div class="linksBox">
<ul>
<li>Item 1</li>
<li>Item2 </li>
<li>Item 3</li>
<li>Item4 </li>
</ul>
</div>
<div id="#heroBanners">
</div>
</div>
#topLeft {margin:0 27px 27px 0; width:478px; min-height:378px; *height:378px; *margin-bottom:22px; position:relative;}
#heroBanners {bottom:0; position:absolute;}
Run Code Online (Sandbox Code Playgroud) 我的网站包括元标:<meta http-equiv="X-UA-Compatible" content="IE=8" /
>
然而,对于使用IE9的一些用户(少量),这没有被应用,我不得不告诉他们自己应用兼容模式
我打开<head>
标签后直接放置它.
有没有其他人有这样的经历,并知道解决这个问题的方法?
我有一个书籍列表,我想存储每本书的数据,例如价格、数量、id、类别 id、大小、重量等。
我正在考虑通过使用 data- 属性扩展表示列表中每本书的 li 元素来将所有这些存储在 dom 中。然后可以直接使用 javascript 使用这些数据。
但是我读到访问数据属性在性能方面很慢。此外,我可以拥有同一本书的多个实例,所以我有点担心 html 中的膨胀。
另一种方法是使用 JS 对象来存储每本书的数据。
所以我的问题是在前端、DOM 或 JavaScript 中存储数据的最佳实践是什么?
提前致谢
看看Windows上第一次开发iPhone应用程序.
我找到了一些sdk(例如Airplay)允许我这样做,但大多数需要C/C +的知识
有没有人知道任何类似的东西,使你能够使用PHP作为语言?
提前致谢
可以document.getElementById
和正则表达式一起使用吗?
例如,一个页面上的ID将是Product-1,而在另一个页面上它将是product-3.(不要问我为什么,但显然无法改变.)
我想要做的是getElementById
查找Product-x的Id,其中x是1或3.
目前我有这样的事情:
var _container = document.getElementById("product-1") || document.getElementById("product-3");
Run Code Online (Sandbox Code Playgroud)
这有用 - 但我想知道是否有更好的方法这样做?
提前致谢
我一直在玩javscript的依赖注入,但有一些我需要帮助的问题
一个简单的例子是我拥有的对话框模块,在页面上的多个位置使用它在用户与页面上的组件交互时向用户发出自定义消息警报
function Dialog () {
}
Dialog.prototype.show = function () {
}
Run Code Online (Sandbox Code Playgroud)
这可以在一个组件中使用,例如一个验证用户搜索的搜索控件,如果它是空的,它会触发一个错误对话框.依赖注入我假设我会写:
function searchComponent (dialog) {
this.dialog = dialog
}
searchComponent.prototype.validateSearch = function () {
// validate search if invalid create error
this.dialog.show();
}
var searchDialog = new Dialog();
var search = new searchComponent(searchDialog);
Run Code Online (Sandbox Code Playgroud)
然而,用户可能永远不需要搜索错误对话框,但我正在创建它的实例,以便我可以传递依赖关系,如果我在页面上有100个单独的对话实例,我构建这些100次,这是不必要的,而且性能昂贵.
我宁愿做的是将对话框的构造延迟加载到需要的时间
searchComponent.prototype.validateSearch = function () {
//validate search if invalid create error
var dialog = new Dialog();
dialog.show();
}
Run Code Online (Sandbox Code Playgroud)
现在我知道这会产生不利因素,其中之一就是它对单元测试的影响,我很想知道的是我是否遗漏了某些东西或其他方法?
提前致谢
javascript ×6
jasmine ×2
performance ×2
unit-testing ×2
css ×1
css-position ×1
dom ×1
focus ×1
html ×1
inheritance ×1
iphone ×1
mobile ×1
modal-dialog ×1
php ×1
positioning ×1