<script language="javascript">
function readbigclass()
{
var selectobj=document.form1.selectbig
selectobj.length=0
for(i=0i<classary.lengthi++)
{
if(classary[i][3]==0){ selectobj.options[selectobj.length]=new Option(classary[i][1],classary[i][0])}
}
}
//加载小类列表
function readsmallclass()
{
var selectobj=document.form1.selectsmall
var bigclassid=document.form1.selectbig.options[document.form1.selectbig.selectedIndex].value
selectobj.length=0
for(i=0i<classary.lengthi++)
{
if(classary[i][2]==bigclassid)
{
selectobj.options[selectobj.length]=new Option(classary[i][1],classary[i][0])
}
}
}
function setvalue(obj,cvalue)
{
if(cvalue=="" || cvalue==null){return}
var m,n
m=obj.length
for(n=0n<mn++)
{
if(obj.options[n].value==cvalue)
{
obj.selectedIndex=n
return
}
}
}
function changcls()
{
var smallcls='<%=rs("classid")%>'
var bigcls
for(i=0i<classary.lengthi++)
{
if(classary[i][0]==smallcls)
{
setvalue(document.form1.selectbig,classary[i][2])
setvalue(document.form1.selectsmall,smallcls)
return
}
}
}
function delpicture()
{
var ischeck=document.form1.delpic.value
var obj=document.all("piclink")
alert(ischeck)
return
if(ischeck==true)
{
obj.style.text-decoration.value="line-through"
}
else
{
document.form1.piclink.style.text-decoration.value="none"
}
}
function testobj(){alert('测试')}
</script>
页面上引用的js文件中函数不能执行的原因:找不到函数,会报错或undefined;语法错误;没有引用js文件等。
具体的解决方法:
1、函数应当直接写在页面即可调用;
2、确保有引用js文件,如果引用了的话,也是可以调用的。
引用方式,可以直接拖拽(因为路径准确),也可以自己写,引用脚本:<script src="Scripts/JScript.js" type="text/javascript"></script>
3、引用的js文件一定要在调用之前,否则就找不到函数了,会报错或undefined。
调用页面:
<script src="Scripts/JScript.js" type="text/javascript"></script><script type="text/javascript">
aa()
</script>
Script.js中代码:
function aa() {
alert("js文件掉用")
}
另外:在BS项目中,某个aspx页面需要引用外部:脚本文件,通过在页面head节<script language="" src="">方式引用指定的js之后,仍然无效。
通过alert方式调试,发现是由于js文件编码与js文件内容不符。由于js文件中包含中文注释,所以需要设置js文件为可识别中文的gb2312编码。其方法如下:
在.net中通过这种方式引用js文件
<script type="text/javascript" src="setday0.js"></script>
然后在页面中调用setday0.js文件中的方法往往会出错!但是如果把setday0.js文件的内容直接放到该页面中来又一点问题也没有。就在页面中重写js代码。
这个问题是由于.net中的text编码所引起的,需要把setday0.js文件保存为UTF-8或者其他Unicode编码方式,问题就迎刃而解。原来的文本编码为gb2312,因为其中有汉字。
如何进行编码转换?
1、用记事本打开,保存的时候选择Unicode编码;
2、直接在vs中选择另存为,保存按钮右边有个小箭头,点一下,然后选择编码方式再保存就ok。
你这个代码看起来没问题,但是其中有些地方的符号是全角的,所以导致出错,建议重新写吧,在英文半角状态下编写代码然后就是变量定义的位置有点问题。
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/htmlcharset=UTF-8" />
<title>Throwing 1 die</title>
<script type="text/javascript" >
var cwidth = 400//保存画布的宽度
var cheight = 300//保存画布的高度
var dicex = 50//保存骰子的水平位置
var dicey = 50//保存骰子的垂直位置
var dicewidth = 100//保存骰子的宽度
var diceheight = 100//保存骰子的高度
var dotrad = 6//骰子的半径
var ctx
function init()
{
ctx = document.getElementById('c1').getContext('2d')
ctx.fillRect(50,50,100,100)
drawface(1)
}
function drawface(n)
{
ctx.lineWidth = 5//设置骰子的边框的厚度
ctx.clearRect(dicex,dicey,dicewidth,diceheight)//清除原来画的骰子
ctx.strokeRect(dicex,dicey,dicewidth,diceheight)//画骰子
ctx.fillStyle = "#009966"//设置园的颜色
switch(n)
{
//判断n是几
case 1: Draw1()
break
case 2: Draw2()
break
}
}
function Draw1()
{
var dotx//保存单个圆点的水平位置
var doty//保存单个圆点的垂直位置
ctx = document.getElementById('c1').getContext('2d')
dotx = dicex + dicewidth * 0.5
doty = dicey + diceheight * 0.5
ctx.beginPath()//开始路径
ctx.arc(dotx,doty,dotrad,0,Math.PI* 2,true)//画圆
ctx.closePath()//结束路径
ctx.fill()//填充圆
}
function Draw2()
{
var dotx
var dotyctx = document.getElementById('c1').getContext('2d')
dotx = dicex + dotrad * 3
doty = dicey + dotrad * 3
ctx.beginPath()
ctx.arc(dotx,doty,dotrad,0,Math.PI*2,true)
dotx = dicex + dicewidth - dotrad * 3
doty = dicey + diceheight - dotrad * 3
ctx.arc(dotx,doty,dotrad,0,Math.PI * 2,true)
ctx.closePath()
ctx.fill()
}
</script>
</head>
<body onload="init()">
<canvas id="c1" width="400" height="300">your browers </canvas>
</body>
</html>
这个是帮你修改后的代码。