document.cookie
就像一个字符串,但它不是一个字符串.引用Mozilla文档中的示例:
document.cookie = "name=oeschger";
document.cookie = "favorite_food=tripe";
alert(document.cookie);
// displays: name=oeschger;favorite_food=tripe
Run Code Online (Sandbox Code Playgroud)
如果您尝试仅使用字符串制作模拟cookie,则不会得到相同的结果:
var mockCookie = "";
mockCookie = "name=oeschger";
mockCookie = "favorite_food=tripe";
alert(mockCookie);
// displays: favorite_food=tripe
Run Code Online (Sandbox Code Playgroud)
所以,如果你想对运行在cookie上的模块进行单元测试,并且你想为这些测试使用模拟cookie,你呢?怎么样?
首先,您需要了解上下文.
浏览器:Chrome
HTML:
<ul>
<li>
<div>Hi!</div>
</li>
</ul>
Run Code Online (Sandbox Code Playgroud)
CSS:
li {
-webkit-transform: scale(0.21);
-webkit-transform-origin-x: 0%;
-webkit-transform-origin-y: 0%;
}
div {
height: 480px;
width: 640px;
}
Run Code Online (Sandbox Code Playgroud)
li元素的有效高度为101px.如果您尝试通过以下任何方法获取Javascript中的高度(假设加载了jQuery 1.4.2):
$("li")[0].clientHeight;
$("li")[0].scrollHeight;
$("li").height();
$("li").innerHeight();
Run Code Online (Sandbox Code Playgroud)
你得到相同的答案:480px.
如果您使用Chrome的开发者工具鼠标悬停元素,它会显示尺寸:136x101.(实际上,第一个数字,宽度,随着窗口的宽度而变化,但它对我的问题并不敏感.)我不知道Chrome是如何实现的,但我确实愿意.
有没有人知道在缩放后获得元素高度的方法,或者你必须以某种方式计算它?
我正在关注此railscast,试图在我的rails应用程序上实现无限滚动页面.当用户向下滚动到页面底部时,会附加一组新项目并且页面会扩展,但是它会多次附加到页面上,即使数组中的所有项目都已加载,事件也会在滚动时再次触发,再次附加相同的项目集多次.
我想要的是每次用户滚动到底部时附加项目的"下一页",然后在用户再次滚动到底部时随后的下一页.
这是这个函数的jQuery:
jQuery ->
if $('.pagination').length
$(window).scroll ->
url = $('.pagination .next_page').attr('href')
if url && $(window).scrollTop() > $(document).height() - $(window).height() - 50
$('.pagination').text('Fetching more products...')
$.getScript(url)
$(window).scroll()
Run Code Online (Sandbox Code Playgroud)
这里是相应的javascript
$('#products').append('<%= j render(@products) %>');
<% if @products.next_page %>
$('.pagination').replaceWith('<%= j will_paginate(@products) %>');
<% else %>
$('.pagination').remove();
<% end %>
Run Code Online (Sandbox Code Playgroud)