javascrpit-请问代码在两种环境下执行不一样啊?

问题描述

请问代码在两种环境下执行不一样啊?

原意是在DW中图片可以在页面中切换,而在chrome中就变成直接跳转到图片了,页面就不存在了。

关键代码如下:

function showPic(whichpic) {

var source = whichpic.getAttribute("href");
var placeholder = document.getElementById("placeholder");
var text = whichpic.getAttribute("title");
var description = document.getElementById("description");
placeholder.setAttribute("src",source);
description.firstChild.nodeValue = text;

}

而多添加了些判断就能解决这问题,这是我不理解的地方。
代码如下
function showPic(whichpic) {

var source = whichpic.getAttribute("href");
var placeholder = document.getElementById("placeholder");
placeholder.setAttribute("src",source);

if (whichpic.getAttribute("title")) {
var text = whichpic.getAttribute("title");
} else {
var text = "";
}
var description = document.getElementById("description");
if (description.firstChild.nodeType == 3) {
description.firstChild.nodeValue = text;
}
return false;
}

还望解答,至诚感谢。

解决方案

典型的js hack
IE的getAttribute有bug

http://blog.csdn.net/zxsrendong/article/details/6650516

whichpic.getAttribute("title")
这里判断下避免返回null

时间: 2024-10-02 12:33:04

javascrpit-请问代码在两种环境下执行不一样啊?的相关文章

link环境下制作一款《订餐软件》,请问在双库的环境下,如何实现跑单去重?

问题描述 link环境下制作一款<订餐软件>,请问在双库的环境下,如何实现跑单去重? link环境下制作一款<订餐软件>,请问在双库的环境下,如何实现跑单去重? 解决方案 首先要确认重复下的订单的标准是什么?有的时候确实是客户下了两个一模一样的订单(客户就是要两份),你能简简单单的去重吗? 再说你的问题,双库环境,其实数据库(oracle和sqlserver)都可以直接远程查询两个数据库并合并为一个结果集的. 这不是技术问题,而是设计问题,业务问题. 解决方案二: http://w

请问在新电脑linux环境下安装win7系统,需要对硬盘分区吗?步骤是什么

问题描述 请问在新电脑linux环境下安装win7系统,需要对硬盘分区吗?步骤是什么 请问在新电脑linux环境下安装win7系统,需要对硬盘分区吗?步骤是什么?能描述的详细点吗,一步一步的.....,帮帮忙 解决方案 建议你先安装windows 7 然后安装linux 比较容易,由于在linux 和windows 的文件系统不同,意识很难说清楚, 解决方案二: 只要WIN7的话,建议先格式化硬盘..然后在安装!

静态成员变量,是不是在①该变量在被引用时 ②所在类被实例化时 这两种情况下会被实例化?

问题描述 静态成员变量,是不是在:①该静态成员变量在被引用时②所在类被实例化时这两种情况下会被初始化? 解决方案 解决方案二:静态成员变量一加载就存在,无需实例化解决方案三:引用1楼xuzuning的回复: 静态成员变量一加载就存在,无需实例化 你好,我说的是被赋初值(初始化)的问题,一被加载就有初始值了,还是该静态成员变量在被引用时或所在类被实例化时才被赋初始值??

《Effective Debugging:软件和系统调试的66个有效方法》——第7条:试着用多种工具构建软件,并将其放在不同的环境下执行

第7条:试着用多种工具构建软件,并将其放在不同的环境下执行 有时我们可以通过改变环境来锁定一些难以捕获的bug.例如,我们可以用另外一款编译器来构建这个软件,也可以切换到其他的运行时解释器.虚拟机.中间件.操作系统或CPU架构上.由于那些环境可能会更加严格地检查输入数据,或能通过其结构来凸现程序中的错误(参见第17条),因此可以帮助我们发现原来很难找到的一些bug.如果程序不够稳定.总是发生无法重现的崩溃问题,或移植起来不太顺利,那就应该试着把它放在另外一种环境下进行测试,这使得我们能够使用更为

《Effective Debugging:软件和系统调试的66个有效方法》一第7条:试着用多种工具构建软件,并将其放在不同的环境下执行

第7条:试着用多种工具构建软件,并将其放在不同的环境下执行 有时我们可以通过改变环境来锁定一些难以捕获的bug.例如,我们可以用另外一款编译器来构建这个软件,也可以切换到其他的运行时解释器.虚拟机.中间件.操作系统或CPU架构上.由于那些环境可能会更加严格地检查输入数据,或能通过其结构来凸现程序中的错误(参见第17条),因此可以帮助我们发现原来很难找到的一些bug.如果程序不够稳定.总是发生无法重现的崩溃问题,或移植起来不太顺利,那就应该试着把它放在另外一种环境下进行测试,这使得我们能够使用更为

段错误-在ubuntu环境下执行python程序,报错 segment error

问题描述 在ubuntu环境下执行python程序,报错 segment error 请教各位朋友们,应该如何查看出错的代码文件和行数呢,只报错segment error,无法知道程序哪里错了.而且程序本身很长,大概几千行代码,没有错误定位很难调试. 请问如何打印出具体的错误信息呢,或者如何调试呢? 在此,先谢谢各位朋友们了. 解决方案 生成dump文件,然后gdb调试.看堆栈. 不过你python程序还可以对print打印信息来分析. 解决方案二: segment error 往往是指针的问题

两种Linux下非交互式命令的实现

一.概述 在Linux环境,有多种实现自动化的脚本语言,如Shell.Python.Perl.Tcl等.Shell语言因与Shell外壳结合紧密,是最常见的实现自动化的脚本语言. 同时,在Linux环境中存在大量功能单一的小工具--通常它们在指定输入后,立即就可获得输出,例如echo.cat等字符串/文本打印工具,又或者是如sed.awk等最常用的字符串编辑工具.通过编写Shell脚本,我们可以反复利用这些小工具来实现一些自动化的批处理. 在少数情况下,我们也需要用到一些交互式的工具,例如pas

ASP、PHP根据时段切换CSS皮肤的代码的两种方法

一个网站能切换不同的CSS风格大家应该都了解,像众所周知的腾讯在今年改版时也增加了切换皮肤的功能.根据时间自动调整站点风格是不错的想法,这种根据时间自动调整站点风格也不是什么新鲜事,记得好久以前也见过类似的文章或方法,只不过当时没有特别注意.下面说一下它们的实现方法,目前网上有这样两种实现方法: 一.采用服务端的代码 ASP版本: <link rel="stylesheet" type="text/css" href=" <% if hour(

介绍两种WEB下的模态对话框的实现

概述 在如今互联网网站上,AJAX效果风靡一时,应该说AJAX技术在未来几年不会动摇,在AJAX效果中,模态对话框是比较常见的效果,也是非常适用的.在这里我给大家介绍或者说是展示一下我自己的做的两种模态对话框: 效果 方法一 本方法是采用ASP.NET AJAX的扩展控件:ASP.NET AJAX Control Tool Kit中的ModalPopupExtender控件实现的: 第一步,我们先创建一个ASP.NET页面:ModalPopup.aspx 页面代码: 1<%@ Page Lang