仅显示以下 3 篇带「问题」关键字的文章。 返回词云  或  查看全部文章

服务器迁移小记

2016-11-06 by Dron

上个月,2016 杭州云栖大会召开,阿里云宣布云产品全线打折,刚好我的服务器 12 月到期,顺手就购入三年,真的很便宜。

本站一直用的万网虚机,记不清几年了,原来的技术方案是 PHP + MySql,新的服务器上,我准备部署 Node + MongoDB,也就引发了这篇文章所述的事情。

Firefox 浏览器 document.write 之后...

2013-01-07 by Dron

今天遇到一个诡异问题,经查问题出现在 Firefox 浏览器上 document.write 之后,我把复现问题的主要代码摘出来了:

<!DOCTYPE html>
<html>
  <head>
    <meta charset="utf-8">
  </head>
  <script>
    // navigator.a = 1;
    setTimeout( function(){
      document.write( "blank" );
      alert( "window: " + ( window.window === window ) );
      alert( "navigator: " + ( window.navigator === navigator ) );
      alert( "document: " + ( window.document === document ) );
      alert( "location: " + ( window.location === location ) );
      alert( "String: " + ( window.String === String ) );
    }, 1 );
  </script>
</html>

如果不运行代码,凭经验你们先猜猜以上 alert 都会是什么结果?(限 Firefox 浏览器)

戳这里在线试试

打开 // navigator.a = 1; 这个注释后,再重新运行一下试试。

最后,我也没弄明白为什么。

危险:IE 下使用 cloneNode 注意事项

2012-04-20 by Dron

在开发「百度地裂特效」时,发现了一些匪夷所思的 Bug,第一反应是特效本身的代码与页面上原有的脚本发生了冲突,经过调试发现,问题出现在 cloneNode

cloneNodeHtmlElement 上的方法,用于创建指定 DOM 节点的拷贝,它接受一个布尔参数 include_all,如果 include_all 设置为 true,则副本会带有指定节点的所有子节点。

然而,<script> 标签也是 DOM 节点,cloneNode 对其有效,经实测各浏览器(尤其是 IE)对 cloneNode 执行结果表现不一致,主要现象为以下两种:

  • IE,至少是 IE8 及以下,对某节点 cloneNode 时,如果该节点包含 <script> 节点,那么 <script> 节点的脚本内容「有可能」会被再次执行一次。
  • 非 IE 浏览器,cloneNode 某节点,包含的 <script> 节点的脚本内容不会被再次执行。

IE 以外的浏览器表现令我满意,而针对于上面所述 IE 的「有可能」,还分以下两种情况: