小编thi*_*eek的帖子

是否可以在JavaScript中模拟document.cookie?

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,你呢?怎么样?

javascript unit-testing

23
推荐指数
5
解决办法
2万
查看次数

如何测量使用CSS3转换缩放的HTML元素的高度?

首先,您需要了解上下文.

浏览器: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是如何实现的,但我确实愿意.

有没有人知道在缩放后获得元素高度的方法,或者你必须以某种方式计算它?

javascript google-chrome css3

5
推荐指数
1
解决办法
1195
查看次数

无限滚动和will_paginate多次附加项目的"下一页"

我正在关注此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)

javascript jquery ruby-on-rails will-paginate coffeescript

5
推荐指数
1
解决办法
2542
查看次数