小编mpd*_*dio的帖子

防止Internet Explorer 11中的过度滚动

我有一个网站上有一个<div>可垂直滚动的网站.这很好用.我也隐藏了滚动条,这也很有效.CSS本质上是

.scrollable {
  overflow-y: scroll;
  -ms-overflow-style: none;
}
Run Code Online (Sandbox Code Playgroud)

不过,我目前在使用触控功能的显示器上的Internet Explorer 11和Windows 7中遇到了问题.当用户点击滚动的底部顶部时,窗口会反弹(即,存在过度滚动).虽然这对大多数用户来说只是一个烦恼,但这是在自助服务终端中全屏运行,因此overscoll允许桌面浏览(而不仅仅是浏览器背景).

我没有成功找到解决方案. touch-action(前缀而非前缀),例如

html, body, .scrollable {
  -ms-touch-action: none;
  touch-action: none;
}
Run Code Online (Sandbox Code Playgroud)

似乎没有做任何事情,也没有

document.addEventListener('touchmove', function (e) { e.preventDefault(); }, false);
document.addEventListener('MSPointerMove', function (e) { e.preventDefault(); }, false);
Run Code Online (Sandbox Code Playgroud)

这个jsBin显示了这个问题.

那么,什么是防止IE11/Windows 7过度滚动的正确方法.

javascript css internet-explorer windows-7 internet-explorer-11

14
推荐指数
1
解决办法
3945
查看次数

Javascript模块模式和子模块初始化的模式

我正在启动一个新项目,我正在审查我的最佳实践,试图防止出现任何问题,同时也看看我遇到了什么样的坏习惯.

我对使用模块/子模块模式在Javascript中处理初始化序列的方式感到非常满意.

让我们说,我的代码最终会有类似的东西

FOO.init()
FOO.module1.init()
FOO.module2.init()
FOO.module3.init()
FOO.module4.init()
Run Code Online (Sandbox Code Playgroud)

在全球范围内.

我本质上是这样做的(错误检查和细节因为简洁而被忽略):

var FOO = (function (me) {
    me.init = function () {
        for (var i in me.inits) {
            me.inits[i]();
        }
    }

    return me; 
}(FOO || {}));

var FOO = (function (parent) {
    var me = parent.module1 = parent.module1 || {};

    me.init = function () {
    }

    parent.inits.push(me.init);

    return parent;
}(FOO || {}));

$(document).ready(FOO.init);
Run Code Online (Sandbox Code Playgroud)

用于初始化.

我知道我之前已经阅读过此内容,但我现在无法找到正确的搜索字词来查找文章.是否有经过深思熟虑和测试的模式处理像这样的情景中的初始化?

谢谢.

编辑:重读这个,我认为一些上下文将告知答案.

在我的例子中,每个模块/子模块都在自己的文件中.基本模块定义站点的基本功能,子模块启用不同的功能.例如,子模块可以在搜索框上连接自动完成,而另一个子模块可以将静态标题图像转换为旋转横幅.CMS启用/禁用子模块,因此我确实希望在基本模块内离开显式调用,以便CMS可以管理所有内容.我还有CMS特定的方法来实现这一点,但我寻找一个通用的Javascript模式来实现这一点,以提供可能使用不同CMS的项目之间的一致性和可重用性.

javascript design-patterns

13
推荐指数
1
解决办法
1万
查看次数

Date对象是否曾使用非公历?

DateJavascript中的对象是否使用非公历?

MDNMSDN文档概括的方法Date的对象和参考UTCIETF-RFC兼容2822个时间戳.

维基百科的文章提到

通常使用公历来标识天数,但也可以使用朱利安天数.

MDN和MSDN文档只是说非UTC方法引用"本地时间",但没有定义"本地时间".

我正在努力与一个网络服务接口,这个网络服务给我一些包含一年的字段的数据,我需要将其与当前的日期进行比较.我很清楚依赖用户机器的准确时间的缺陷,并且可以解决因时区错误和伪造日期设置导致的任何问题.

我所关注的,不过,关于不使用公历语言环境的用户,以及他们的浏览器会给回来,如果我使用.getDate(),.getMonth().getFullYear()方法来计算某一天的一年.

那么,在实践中,Javascript中的"本地时间"是否指的是非公历系统,例如希伯来语或波斯语日历?

javascript calendar date

10
推荐指数
1
解决办法
1951
查看次数

jQuery .ready()和<script defer>之间的交互

我试图找出我继承的一些代码的问题.

我有一个HTML页面

<script type="text/javascript" src="file1.js" defer="defer"></script>
<script type="text/javascript" src="file2.js" defer="defer"></script>
</body>
</html>
Run Code Online (Sandbox Code Playgroud)

file1.js有

FOO = {
  init : function () {
    var bar = BAR;
  }
}

$(document).ready(FOO.init);
Run Code Online (Sandbox Code Playgroud)

file2.js有

var BAR = {
}
Run Code Online (Sandbox Code Playgroud)

由于元素的延迟属性,是否可以安全地假设当那个可能仍然未定义的.ready()调用b/c 由于延迟执行而导致代码尚未执行?FOO.init()BARfile2.js

这将匹配我试图追踪的错误(仅在IE中偶尔发生),但我真的想在我处理解决方案之前理解为什么会发生这种情况.我不知道为什么原来的开发人员使用defer,除了一个神秘的称赞"他必须"这样做.

javascript jquery deferred-loading

9
推荐指数
1
解决办法
1491
查看次数

SimpleXML中的XPath,用于默认名称空间,无需前缀

我有一个XML文档,它附加了一个默认命名空间,例如

<foo xmlns="http://www.example.com/ns/1.0">
...
</foo>
Run Code Online (Sandbox Code Playgroud)

实际上,这是一个符合复杂模式的复杂XML文档.我的工作是从中解析出一些数据.为了帮助我,我有一个XPath的电子表格.XPath是相当深层嵌套的,例如

level1/level2/level3[@foo="bar"]/level4[@foo="bar"]/level5/level6[2]
Run Code Online (Sandbox Code Playgroud)

生成XPath的人是模式的专家,所以我假设我不能简化它,或者使用对象遍历快捷方式.

我正在使用SimpleXML来解析所有内容.我的问题与如何处理默认命名空间有关.

由于根元素上有一个默认命名空间,我不能这样做

$xml = simplexml_load_file($somepath);
$node = $xml->xpath('level1/level2/level3[@foo="bar"]/level4[@foo="bar"]/level5/level6[2]');
Run Code Online (Sandbox Code Playgroud)

我必须注册命名空间,将其分配给前缀,然后在我的XPath中使用前缀,例如

$xml = simplexml_load_file($somepath);
$xml->registerXPathNamespace('myns', 'http://www.example.com/ns/1.0');
$node = $xml->xpath('myns:level1/myns:level2/myns:level3[@foo="bar"]/myns:level4[@foo="bar"]/myns:level5/myns:level6[2]');
Run Code Online (Sandbox Code Playgroud)

从长远来看,添加前缀不会是可管理的.

是否有一种正确的方法来处理默认名称空间而无需使用XPath前缀?

使用空前缀不起作用($xml->registerXPathNamespace('', 'http://www.example.com/ns/1.0');).我可以指出默认的命名空间,例如

$xml = file_get_contents($somepath);
$xml = str_replace('xmlns="http://www.example.com/ns/1.0"', '', $xml);
$xml = simplexml_load_string($xml);
Run Code Online (Sandbox Code Playgroud)

但这是在绕过这个问题.

php xml xpath namespaces simplexml

9
推荐指数
1
解决办法
3642
查看次数

使用CSS的奇怪行为:第一个孩子:在Chrome之前

我在Chrome 10中看到了一些奇怪的东西:first-child:before.

有了这个HTML

<ul>
    <li>One</li>
    <li>Two</li>
    <li>Three</li>
</ul>

<ul>
    <li>Four</li>
    <li>Five</li>
    <li>Siz</li>
</ul>
Run Code Online (Sandbox Code Playgroud)

而这个CSS

ul {
    list-style-type: none
}

li:before {
    content: "* "
}

li:first-child:before {
    content: ""
}
Run Code Online (Sandbox Code Playgroud)

任何人都可以解释为什么<li>Four</li>在Win XP SP3中使用Chrome 10.0.648.204中的星号进行渲染?见http://jsfiddle.net/MxtHm/

但是,如果我将CSS更改为

ul {
    list-style-type: none
}

li:before {
    content: "* "
}

li:first-child {
    background: none
}

li:first-child:before {
    content: ""
}
Run Code Online (Sandbox Code Playgroud)

<li>Four</li>没有星号的渲染.见http://jsfiddle.net/SGRej/

Safari 5.0.4和Firefox 3.6.16使两个示例都相同.我已经阅读了Meyer的书和CSS规范,寻找没有任何运气的解释,CSS验证器并没有抱怨CSS.

非常奇怪的是,如果我在Chrome中检查元素,则表明它li:first-child:before正在覆盖li:before规则.

JSFiddle正在使用XHTML 1.0 Strict DOCTYPE,但我也看到HTML5 DOCTYPE.

谢谢.

2011-04-28编辑:这似乎已在Chrome 11.0.696.57中修复,以及其他类似的伪元素相关问题.

css google-chrome css-selectors pseudo-element

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

使用computeSpectrum()进行音高检测返回FFT值

  • 我正在使用ActionScript 3.0 for Flash Player 10.3进行开发
  • 我在加载的.mp3上使用computeSpectrum()
  • 运行*Event.ENTER_FRAME*以获取byteArray中每个样本的快照
  • ByteArray包含512个值(每个通道256个).这些值是FFT Spectrum,范围从0到1.
  • 我无法使用每个样本的峰值频率(正如我发现的那样!)因为最高值不一定是基频!结果我得到了很多随机值!当然我也得到了一些正确的,但这还不够!

我发现了自动关联 ......
有人能给我一个如何使用它的例子吗?

或者链接,或者甚至是其他脚本语言的示例脚本来控制它?

关心
initcode

flash signal-processing fft actionscript-3

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

在Apache/PHP中管理Nonce

我一直在讨论关于nonce生成和PHP的各种问题,但没有找到关于管理nonce的"一次"方面的细节的任何讨论.

这是我的情况.

我有一些PHP需要访问web服务,并且对webservice的请求需要我的PHP生成一个nonce并签署请求(即,我不是从webservice请求nonce).那部分很容易.

我正在努力寻找一个好的解决方案,以防止在有多个会话进行时重用nonce.

在我看来,我可以做三件事.

一种是将nonce/timestamp对存储在数据库中,然后实现逻辑以检查数据库中是否存在现有的nonce,使旧的等效期满等.这也需要一个TRANSACTION或者LOCK TABLE用于线程安全.呸.

二,是将存储器中的nonce存储在APC中的nonce(在我的情况下不能使用memcached),并让TTL处理到期.在这种情况下,线程安全是否需要将逻辑包装在sem_acquire()/ sem_release()apc_add()真正的线程安全?我的这个主要关注的是如何处理这种情况,如果apc_add()还是apc_store()实际上失败,因为缓存已满.

三,是使用Cache_Lite而不是APC.

还有其他选择吗?据我所知,OpenID使用Cache_Lite管理nonce,所以我怀疑这是最好的解决方案,但我想在提交之前检查所有选项.

谢谢.

php apache nonce

3
推荐指数
1
解决办法
1621
查看次数

对经典ASP的多语言支持

我有一位客户今天早上打电话给我,要求改造网站以获得多语言支持.该站点是一个经典ASP应用程序,客户端没有重写的愿望/预算是ASP.NET(或其他任何...).

我们谈到了这方面的困难,但很多文本恰好是从数据库中读取的短字符串,他很乐意能够翻译这个文本.

如果这不是经典ASP,我会使用基于GNU gettext()的解决方案.但是,我还没能找到Classic ASP的等价物.

我可以在他的数据库中添加一个表来存储字符串翻译,然后只是查询它,但这也意味着创建一个管理界面,这样他就可以编辑字符串(而不仅仅是编辑纯文本文件).

我也可以创建自己的flatfile解决方案,可能是基于Scripting.Dictionary,但我真的不想在这里自己动手.

这里有替代解决方案吗?谢谢.

multilingual asp-classic

3
推荐指数
1
解决办法
2285
查看次数

更新mysql表,从同一个表中选择

我是MYSQL查询语句的新手,我目前仍然坚持使用以下代码

UPDATE fb_messages
SET sent = 'Yes' 
WHERE msg_id = (SELECT MAX(msg_id) AS MSG_ID 
                FROM fb_messages
                WHERE sent = 'No')
Run Code Online (Sandbox Code Playgroud)

我收到了这个错误

#1093 - You can't specify target table 'fb_messages' for update in FROM clause
Run Code Online (Sandbox Code Playgroud)

我搜索了一个解决方案,以解决类似的情况,但我真的找不到,请帮助

mysql

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

Javascript模块模式和Google Closure编译器

我现在正在Drupal项目上使用Google Closure Compiler.我的Javascript使用Javascript模块模式构建.

由于Drupal的工作方式,我正在单独编译每个JS文件.简单编译模式运行良好,但我想在每个文件上使用高级编译.

我的文件都是变体

var FOO = (function(me, $, Drupal, undefined) {
  function init (context, settings) {
    do_sutff();
  };

  Drupal.behaviors['FOO'] = {
    attach: init
  };

  return me;
}(FOO || {}, jQuery, Drupal));
Run Code Online (Sandbox Code Playgroud)

我的问题是Drupal.behaviorsDrupal中的一个特定对象,该attach属性也是一个特定的属性.当Drupal页面呈现时,Drupal.behaviors循环遍历,并attach使用正确的参数调用所有函数.换句话说,我不希望任何用Drupal对象重命名的东西.

当我使用高级编译模式时,我得到了

var c = function(a, d, b) {
  b.b.FOO = {a:function() {
    do_stuff()
  }};
  return a
}(c || {}, jQuery, Drupal);
Run Code Online (Sandbox Code Playgroud)

我试图让编译器将整个Drupal对象识别为extern而没有运气,尝试了许多变体.不管我怎么努力,.behaviors.attach始终获得改名. …

javascript drupal google-closure-compiler

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