小编Mar*_*aio的帖子

使用DOCTYPE HTML 4.01 Transitional转到IE8

我们在HTML代码第一行的所有页面中使用:

<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
Run Code Online (Sandbox Code Playgroud)

我们正在转向新的IE8,我们希望保持DOCTYPE不变,是否有任何建议/警告我们最好注意?

我的意思是:"小心,在IE8过渡时,CSS min-width不再起作用了,小心它会搞乱这个页面,等等."

html css doctype html4 internet-explorer-8

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

attachEvent在队列的开头插入事件,而addEventListener将事件附加到队列

我使用这个简单的工作函数来添加事件:

function AppendEvent(html_element, event_name, event_function)
{
   if(html_element)
   {
      if(html_element.attachEvent) //IE
         html_element.attachEvent("on" + event_name, event_function);
      else if(html_element.addEventListener) //FF
            html_element.addEventListener(event_name, event_function, false);
   };
}
Run Code Online (Sandbox Code Playgroud)

在做这个简单的测试时:

AppendEvent(window, 'load', function(){alert('load 1');});
AppendEvent(window, 'load', function(){alert('load 2');});
Run Code Online (Sandbox Code Playgroud)

我注意到FF3.6 addEventListener 在事件队列的末尾追加每个新事件,因此在上面的例子中你会得到两个警告,说'加载1''加载2'.

另一方面,IE7 attachEvent在事件队列的开头插入每个新事件,因此在上面的示例中,您将收到警告"加载2"加载1'.

有没有办法解决这个问题并使两者以同样的方式工作?

谢谢!

javascript events event-handling addeventlistener

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

如何进入Apache密码保护的目录而不显示弹出登录

在这里阅读如何通过简单的dircet链接进入Apache密码保护的directroy:

http://username:password@yoursite.com/protected_dir/ 
Run Code Online (Sandbox Code Playgroud)

适用于FF/Chrome/Safari,显然不适用于IE7!:)

你知道我怎么能进入一个psw受保护的目录创建一个登录表单并使用GET/POST进入?

我是否需要在进入之前设置会话,或者我可以简单地将用户和密码作为GET/POST参数传递给受保护目录?(在最后一种情况下,我必须使用什么参数名称?)

谢谢!

php apache login popup protected-folders

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

SQLite用于网站,而不用于客户端/服务器应用程序吗?

在阅读了这个问题和建议的链接后,解释了什么时候更适合使用SQLite和另一个DB,我仍然不清楚一件事,我希望有人可以澄清一下。

他们说:

SQLite运作良好的情况

网站

SQLite通常可以作为低流量到中流量网站的数据库引擎...

...

另一个RDBMS可能效果更好的情况

客户端/服务器应用程序...

如果您有许多客户端程序通过网络访问公共数据库 ...

网站不是客户端/服务器应用程序吗?

我的意思是我不明白,网站正是这种情况,我有许多客户端程序(具有Web浏览功能的用户)通过一个服务器应用程序同时访问一个公共数据库

为了简单起见:在一天结束时,是否有可能将此SQLite用于电子商务网站,在线目录或包含大约1000个产品/页面的CMS网站?

sqlite e-commerce web

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

校验位算法 Luhn mod N 与简单和

您知道为什么Luhn mod N 算法为了创建校验位而通过将每个偶数放置的字符的值加倍而不是执行所有字符的简单总和来执行求和吗?

用伪代码的话:

给出:

var s = "some string i want to create check digit";
Run Code Online (Sandbox Code Playgroud)

你知道为什么 Luhn mod N 基本上是这样的:

for(i from s.length-1 to 0)
   if(i is even)
      checkdigit += chr2int(s[i]) * 2;
   else
      checkdigit += chr2int(s[i]);
Run Code Online (Sandbox Code Playgroud)

而不是简单地做一个总和

for(i from s.length-1 to 0)
   checkdigit += chr2int(s[i]);
Run Code Online (Sandbox Code Playgroud)

他们仍然可以通过一个mod操作终止,使校验位适合一个字符

return int2chr( chr2int('a') + (checkdigit mod 25) );
Run Code Online (Sandbox Code Playgroud)

作为这个问题的旁注,它可能对 Luhn 算法的图形表示感兴趣,这使得它更容易理解:

在此处输入图片说明

其实这个是原始的 Luhn 算法,甚至不需要使用 MOD 函数。

algorithm checksum check-digit

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

在php中扩展静态方法

class Foo {
  public static function foobar() {
    self::whereami();
  }

  protected static function whereami() {
    echo 'foo';
  }
}

class Bar extends Foo {
  protected static function whereami() {
    echo 'bar';
  } 
}

Foo::foobar();
Bar::foobar();
Run Code Online (Sandbox Code Playgroud)

预期结果foobar实际结果foofoo

更糟糕的是,服务器仅限php 5.2

php static

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

PHP strtr 与 str_replace 基准测试

我很好奇进行字符串转换的最高效的方法是什么。给定一个输入字符串和一组翻译,一般来说哪种方法最有效?我目前使用strtr(),但已经使用str_replace()数组等测试了各种循环方法。该strtr()方法在我的系统上进行了最快的基准测试,具体取决于翻译,但我很好奇是否有我还没有想到的更快的方法。

如果相关的话,我的特定用例涉及将 2 字节字符串转换为终端的 ANSI 颜色序列。例子:

// In practice, the number of translations is much greater than one...
$out = strtr("|rThis should be red", array('|r' => "\033[31m"));
Run Code Online (Sandbox Code Playgroud)

php string performance transformation ansi

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

在Javascript FF/Safari中的xa保留关键字不在IE中吗?

Web应用程序的网页显示一个奇怪的错误.我倒退了所有的HTML/CSS/JS代码,并得到了下面的基本简单代码.

<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html><head>
<title>test</title>

   <script type="text/javascript">
      var TestObj =
      {
         foo: function() {}
      }

      alert(x); //ok displays "undefined"
      var x = TestObj.foo;
      var z = TestObj.foo;
    </script>

</head><body>

   <p onclick='alert(x);'>Click shows function foo!</p>
   <img onclick='alert(x);' alt='CRAZY click displays a number in FF/Safari not function foo' src='' style='display: block; width: 100px; height: 100px; border: 1px solid #00ff00;'>
   <p onclick='alert(x);'>Click shows function foo!</p>

</body></html>
Run Code Online (Sandbox Code Playgroud)

这很疯狂:当点击P元素时,字符串"function(){}"按预期显示.但是当单击IMG元素时,它会显示一个数字,好像x函数以某种方式从内存中删除或被解除实例化(它甚至不会将x显示为"未定义"而是显示为数字).

为了让你快速测试它,我上面摆放也是测试工作在这里.

这可以在Firefox 3.6和Safari 4.0.4上重现. …

javascript reserved-words

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

Javascript 在全局对象中使用“this”

'this' 关键字在全局对象中使用时指的是什么?

假设我们有:

  var SomeGlobalObject =
  {
     rendered: true,
     show: function()
     {
        /*
        I should use 'SomeGlobalObject.rendered' below, otherwise it 
        won't work when called from event scope.
        But it works when called from timer scope!!
        How can this be?
        */
        if(this.rendered)
           alert("hello");
     }
  }
Run Code Online (Sandbox Code Playgroud)

现在,如果我们在 HTML 页面中调用内联脚本:

SomeGlobalObject.show();
window.setTimeout("SomeGlobalObject.show()", 1000);
Run Code Online (Sandbox Code Playgroud)

一切正常。

但是如果我们做这样的事情:

AppendEvent(window, 'load', SomeGlobalObject.show);
Run Code Online (Sandbox Code Playgroud)

我们收到错误,因为this.rendered从事件范围调用时未定义。

  1. 你知道为什么会这样吗?
  2. 你能解释一下是否有另一种更聪明的方法来做到这一点,而不必每次都将“SomeGlobalObject.someProperty”重写到 SomeGlobalObject 代码中?

AppendEvent 只是一个简单的跨浏览器函数来追加一个事件,代码如下,但是为了回答上面的问题没有关系。

  function AppendEvent(html_element, event_name, event_function)
  {
        if(html_element.attachEvent) //IE
           return html_element.attachEvent("on" + event_name, event_function);
        else
           if(html_element.addEventListener) //FF
              html_element.addEventListener(event_name, …
Run Code Online (Sandbox Code Playgroud)

javascript object this dom-events

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

验证表单http://www.test.com中的URL

我想验证URL(使用java脚本)只接受格式 - http://www.test.com.我正在尝试使用代码,但它也接受test.com和http://www.test.com.com.

var URLReg = new RegExp();
URLReg.compile("^[A-Za-z]+://[A-Za-z0-9-_]+\\.[A-Za-z0-9-_%&\?\/.=]+$");
if (!URLReg.test(form["URL"].value)) {
    alert("You must supply a valid URL.");
    return false;
} 
Run Code Online (Sandbox Code Playgroud)

这有什么不对?:(

提前致谢.

javascript regex validation url

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