我有一个网站上有一个<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
我正在启动一个新项目,我正在审查我的最佳实践,试图防止出现任何问题,同时也看看我遇到了什么样的坏习惯.
我对使用模块/子模块模式在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的项目之间的一致性和可重用性.
DateJavascript中的对象是否使用非公历?
该MDN和MSDN文档概括的方法Date的对象和参考UTC和IETF-RFC兼容2822个时间戳.
维基百科的文章提到
通常使用公历来标识天数,但也可以使用朱利安天数.
MDN和MSDN文档只是说非UTC方法引用"本地时间",但没有定义"本地时间".
我正在努力与一个网络服务接口,这个网络服务给我一些包含一年的字段的数据,我需要将其与当前的日期进行比较.我很清楚依赖用户机器的准确时间的缺陷,并且可以解决因时区错误和伪造日期设置导致的任何问题.
我所关注的,不过,关于不使用公历语言环境的用户,以及他们的浏览器会给回来,如果我使用.getDate(),.getMonth()和.getFullYear()方法来计算某一天的一年.
那么,在实践中,Javascript中的"本地时间"是否指的是非公历系统,例如希伯来语或波斯语日历?
我试图找出我继承的一些代码的问题.
我有一个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,除了一个神秘的称赞"他必须"这样做.
我有一个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)
但这是在绕过这个问题.
我在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中修复,以及其他类似的伪元素相关问题.
我发现了自动关联 ...... 
有人能给我一个如何使用它的例子吗?
或者链接,或者甚至是其他脚本语言的示例脚本来控制它?
关心
initcode
我一直在讨论关于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,所以我怀疑这是最好的解决方案,但我想在提交之前检查所有选项.
谢谢.
我有一位客户今天早上打电话给我,要求改造网站以获得多语言支持.该站点是一个经典ASP应用程序,客户端没有重写的愿望/预算是ASP.NET(或其他任何...).
我们谈到了这方面的困难,但很多文本恰好是从数据库中读取的短字符串,他很乐意能够翻译这个文本.
如果这不是经典ASP,我会使用基于GNU gettext()的解决方案.但是,我还没能找到Classic ASP的等价物.
我可以在他的数据库中添加一个表来存储字符串翻译,然后只是查询它,但这也意味着创建一个管理界面,这样他就可以编辑字符串(而不仅仅是编辑纯文本文件).
我也可以创建自己的flatfile解决方案,可能是基于Scripting.Dictionary,但我真的不想在这里自己动手.
这里有替代解决方案吗?谢谢.
我是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)
我搜索了一个解决方案,以解决类似的情况,但我真的找不到,请帮助
我现在正在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 ×5
css ×2
php ×2
apache ×1
asp-classic ×1
calendar ×1
date ×1
drupal ×1
fft ×1
flash ×1
jquery ×1
multilingual ×1
mysql ×1
namespaces ×1
nonce ×1
simplexml ×1
windows-7 ×1
xml ×1
xpath ×1