首页 - 标签 - 登陆 | emlog - 我们的动漫

IE的document.getElementById混淆name和id属性的BUG

2008-10-15 22:54 Wednesday
作者:朦朧中的罪惡 | 标签: JavaScript 原创

前不久我在开发中遇到了在IE下Form.submit()的一个BUG,没想到IE的BUG还不只这么一个,下面我来介绍我遇到的另外一个关于document.getElementById的BUG.

BUG演示

页面演示在这里,代码在下面

  1. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> 
  2. <html xmlns="http://www.w3.org/1999/xhtml"> 
  3. <head> 
  4. <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> 
  5. <title>IE document.getElementById BUG DEMO</title> 
  6. </head> 
  7.  
  8. <body> 
  9. <script language="javascript"> 
  10. /*  
  11.     IE document.getElementById BUG 演示DEMO  
  12.     作者:朦朧中的罪惡  
  13.     博客:http://be-evil.org  
  14. */  
  15. function changeValue()  
  16. {  
  17.     var username = document.getElementById('username');  
  18.     username.value = 'Whahaha';  
  19. }  
  20. </script> 
  21. <form action="IE_BUG2.html" method="get"> 
  22. <p>name:<input type="text" name="username" /></p> 
  23. <p>name2:<input type="text" id="username" name="name" /></p> 
  24. <p><input type="button" value="改变" onclick="changeValue();" /></p> 
  25. </form> 
  26. </body> 
  27. </html> 

很简单的一段代码,看上去似乎没有任何错误,但是在IE下点击改变按钮后,被改变值的对象居然是第一个name属性为username的input对象.而不是第二个id属性为username的对象. 

 

阅读全文>>

再现战争的残酷--重温战火兄弟连

2008-10-15 22:52 Wednesday
作者:朦朧中的罪惡 | 标签: 原创 品味电影

某天无意中在BT上看到兄弟连全套720P高清版本,花了一天一夜拖下来后又花了一天全部看完,这部伟大的二战电视剧再一次震撼了我的心,没有以往战争电影的丑化地方,我方主旋律、政治等等因素影响,纯属以一个第三人称叙事中立的方式来描写战争。

靠着这个中立的叙事方式,我们才能真切的看到那些有血有肉的士兵和战争的恐怖。一幕幕写实的情景时刻在敲击着我们的心灵:

在第三集中,E连攻击法国小镇时,一个被炸晕的德军士兵从房子中走出来碰到一个美军士兵,此时没有任何对白,美军士兵没有任何的迟疑,直接用手枪将其射倒,然后继续加入战斗,这个细节镜头将战争的残酷展现的淋漓尽致,生命在战场上就是这么脆弱..

点击查看原图

 

阅读全文>>

Zend Framework在II7环境下的配置手记

2008-10-15 22:51 Wednesday
作者:朦朧中的罪惡 | 标签: 原创 Zend Framework

转换到VISTA+IIS7平台下开发后,首要的问题就是:如何让Zend Framework在IIS7下正常运行?众所周知,Zend Framework运行需要url rewrite方可实现,那么II7该如何处理配置呢?其实很简单,II7和Apache一样已经将功能组件模块化,实现一个功能只需安装对应模块文件后即可。

由于介绍Zend Framework在IIS7下面配置的文章网上几乎没有,我只能靠着着相关的参考资料和自己以往的经验来慢慢摸索,整个研究过程中有这么几点收获:

1.IIS7真的很强大!和Apache一样的功能模块化+配置数据文件化。

2.英文真的很重要!

以下是我的个人研究手记:

II7 相关模块文件和文档可以去 http://www.iis.net下载

url rewrite下载的页面在这里,点击DownLoad按钮后即可下载,安装过程也很“微软”——一路下一步就行了。

 

阅读全文>>

IE中使用JavaScript中调用form.submit()提示“对象不支持此属性和方法”问题研究

2008-8-20 17:32 Wednesday
作者:朦朧中的罪惡 | 标签: JavaScript 原创

今天在项目中无意中遇到的一个神奇的问题,特此记录。 

首先我们看看以下代码,测试页面可以看这里,页面的功能和逻辑很简单。

这段代码从逻辑上看没有任何错误和BUG,理论上是可以完全执行的。

<html>
    <head>IE 测试</head>
<body>
<script language="javascript">
/*
======================================
    IE 下 submit 重名测试
    作者:朦朧中的罪惡
    博客:http://be-evil.org
======================================
*/
function dosubmit()
{
   
var theform = document.getElementById('theform');
    theform.submit();
}
</script>
    <form method="post" id="theform">
        <table width="800">
            <tr>
                <td><input type="text" value="测试"></td>
            </tr>
            <tr>
                <td><input type="button" name="submit" value="提交" onclick="dosubmit()"></td>
            </tr>
        </table>
    </form>
</body>
</html>

 

 

==================================================================

本文系原创文章,转载请注明文章源自思想之地 http://be-evil.org,作者:朦胧中的罪恶

==================================================================

如果用Firefox查看这个页面并点击提交按钮,表单会正常提交,但是我们换到IE下面,IE却会提示“对象不支持此属性和方法“ 而停止提交的操作。

这是怎么回事呢?经过我多方的查找资料,发现是提交按钮的name="submit"的属性在捣乱。

此时我们将theform.submit();注释掉,新起一行输入alert(theform.submit.value);刷新页面后再次点击提交,弹出的窗口上会显示”提交“两个字,神奇了!theform.submit居然是提交按钮而不是theform的方法了!

为什么会出现这个问题呢,因为在IE下可以通过 表单.表单元素名称 这样的方式获得一个表单下的所有表单元素,但是巧就巧在这里,如果某个表单元素的名称和表单的方法名重名的话那么IE就会优先将名称解析为某个表单元素,而不是表单的方法,此时就会出现这个神奇的问题了。

淘宝无法登陆的解决方法

2008-8-4 22:49 Monday
作者:朦朧中的罪惡 | 标签: 原创 互联网应用

最近在淘宝上买东西时发现一个奇怪的问题:

用ie 7访问淘宝任何页面都正常,但是一到登录页面速度就奇慢无比,而且就算登录页面显示出来了也是没有css的页面,输入用户名密码提交登陆后总是显示“该页无法显示”。更加奇怪的是,在同一时间使用firefox3登录淘宝一切却非常流畅正常,根本就没有ie的那个情况。

从以上情况可以初步判断是ie7的问题,下面记录我的排查步骤

首先,我想到的是安全软件阻挡:

关闭360安全卫士所有监控并将其退出。尝试登录,无效!

关闭江民杀毒软件。尝试登录,无效!

其次,与安全软件无关?那么难道是插件问题?

一个一个禁用所有IE正在使用中插件,每禁用一个就尝试登录淘宝,无效!

再次,IE 安全设定的问题?

到internet设置中将全部设置设定为默认值,尝试登录淘宝,无效!

最后,必杀技:恢复笔记本纯净系统

这次使出了绝招,完全恢复纯净系统,再次尝试登录淘宝,成功!

问题到这里是解决了,但是似乎我仍然没有发现问题所在。

因为急着买东西,打好系统补丁安装好杀毒软件我再次登录淘宝付钱买货。在我用网银往支付宝中充值后神奇的事情发生了,淘宝登录页面又出现了先前的问题,无法登陆了,而在出现这个问题的期间我只安装了工行的IE安全控件和U盾驱动。难道是它们在捣鬼?尝试卸载这两个软件后继续登录淘宝,问题依旧。此时我想到工行的IE安全控件安装后会修改安全设置,难道是修改安全设定后导致淘宝先前的写在我电脑上的cookie不正常从而无法登陆系统?于是我尝试清理了浏览器的cookie,再次登录淘宝,问题解决...

ADSL使用路由器出现FTP上传缓慢的解决办法

2008-7-10 23:04 Thursday
作者:朦朧中的罪惡 | 标签: 原创 互联网应用

最近突然发现自己电脑的FTP上传变得非常奇怪,使用FTP时4kb的文件都无法正常上传到服务器上,flashfxp总是显示从最高速度传输慢慢的将为0.0kb/s,然后很久才有反应开始缓慢的上传下一个文件。同时其他涉及到向网络发送数据的操作如上传文件,提交表单数据等都变得异常缓慢。

附件[ematt:115]

这是怎么回事,我开始逐一排查问题:

阅读全文>>

基于Zend Framework的分页类

2008-7-10 21:41 Thursday
作者:朦朧中的罪惡 | 标签: php 原创 Zend Framework

刚学Zend Framework 感叹其强大的同时却发现其在Web开发中常用到的如分页,上传,字符串处理等等却没有实现,今天小试牛刀,给Zend Framework扩展了一个分页类。

核心编写思路:

     本分页类未采用常见的将HTML代码生成封装在类中的做法,而是基于Zend框架的MVC的思想,只在类中封装了处理分页所必需的数据的逻辑,而具体的分页信息显示逻辑则交予视图完成,将业务逻辑与显示逻辑分离,这样在开发灵活性上可以提高很多。

本例基于Zend Framework  1.5.2 编写,未将类整合到Zend Framework中,将本文件放置于INCLUDE_PATH/Util/下即可。本类只能在控制器下的方法中使用,实例化时需要传入控制器的request对象。

类核心代码:Page.php

阅读全文>>

给Dreamweaver增加自定义文件扩展名

2008-7-3 21:33 Thursday
作者:朦朧中的罪惡 | 标签: 原创 享受编程

最近在研究zend框架,框架的页面文件采用的phtml后缀Dreamweaver无法将其识别为PHP文件,编辑页面设计时没有语法高亮甚是麻烦!然而我在“首选参数”选项中却无法找到相关扩展名关联的设置,看来文件关联写在某个配置文件上了。在Dreamweaver文件夹中一阵查询后确定了Configuration\DocumentTypes\MMDocumentTypes.xml是扩展名的配置文件,用任意编辑器打开后找到xml节点<documenttype id="PHP_MySQL" 在其winfileextension属性中增加.phtml重启Dreamweaver即可。

Discuz!编辑器附件添加原理不完全研究

2008-6-13 13:39 Friday
作者:朦朧中的罪惡 | 标签: JavaScript php 原创 Discuz!

Discuz!在6.0版的时候推出了自己的编辑器,除了它常用的编辑功能之外有一个很有特色的功能就是附件无上传插入.

用这个这个功能人都会发现在编辑时只要在本地选择了文件附件无需上传即可将它插入到帖子内容中,图文并排在第一次发贴的时候就可以实现,而不像一些传统程序必须上传了附件才可以插入到编辑器中.

作为开发者的我对这个功能实现的方式非常感兴趣,花了一点时间来研读了一下Discuz!编辑器此功能的代码.

本文分析的Discuz!版本为6.0,涉及的javascript和php文件包括

include/javascript/post_attach.js

include/javascript/post_editor.js

include/javascript/bbcode.js

include/newthread.inc.php

代码版权归康盛创想公司所有

阅读全文>>

emlog开发日志

2008-6-10 20:37 Tuesday
作者:朦朧中的罪惡 | 标签: emlog 原创

端午节的三天休息日打有50%的时间投到emlog上 ,做了不少事情
1.重构了所有的模板逻辑代码.

    先前的emlog模板html输出采用的是print <<<eot来完成的,这样的设定让模板制作上有很大的麻烦,首先模板html代码在所有的编辑器里面都被当作php字符创来识别,都是一个颜色,阅读起来非常不方便,而且由于是当作了字符串,在Dreanweaver中根本就看不到预览,调试的时候完全只能靠浏览器的显示来帮忙,整个过程及其繁琐和复杂.其次 EOT编码必须在哪一行的第一个,前面不能有空格,写代码的时候写个if else简直是要把我累死.本来想用个PHP模板引擎解决这个问题,但是跟那多记忆讨论后觉得模板引擎其实也很麻烦(编译啊,缓存啊),不是代码不人性化么,我们采取了一个最简单的方法来解决,直接把模板的格式修改为<?php ?>与HTML混杂,这样老方式的问题就不复存在了,要预览有预览,要代码高亮有代码高亮,同时性能也是最好的.不过重构代码的确是个体力+技术活.先用正则批处理后再逐个模板一一检查花了我不少时间,不过收获也很大,发现了一个BUG.

2.加入Gzip开启的功能

    Gzip是个好东西,开启后能为博客省不少的流量.Gzip开启其实代码并不多,但是调试的时候我却遇到个麻烦,本来按照和那多记忆讨论的方案做成自动开启的,但是却没有考虑服务器PHP配置开启的问题,最后还是在后台增加了Gzip的开关给用户自己选择的权利.

3.日志附件上传问题

    这个东西其实就是个功能人性化设计的问题,现在emlog的附件必须提交日志后方能插入到编辑器中排版,写图文混排的日志时非常麻烦.这个我现在考虑了2个方案来解决,到时候需要跟那多记忆再讨论讨论研究研究后再定版和实施.这个问题一解决emlog日志发布部分就非常好了.

今天在落伍上看到有人在推荐emlog感觉很欣慰,emlog还是有用户肯定的.

先写这么多,emlog的进步还需要我们继续努力...

[1] 2 3