请教asp.net中javascritp问题
在用户控件中写javascript代码,并且调用,运行时提示javascript语法错误这几个字,但是把这个页面的HTML源代码保存成HTML文件时,打开却没有任何错误,可以正常显示效果,
在网上查了下,一般的都说是编码的问题,先后把web.config中的所有的关于utf-8的编码都改成了gb2312,可是还是不能解决问题,有人说要把那几个文件都用notpad重新存为utf-8编码,也试过了,也是不能解决问题.不知道是怎么回事.
我的开发环境是windows2003server,ie6,vs.net2003
问题点数:100、回复次数:36Top
1 楼Allan1668(影子传说)回复于 2005-11-13 12:06:09 得分 5
vs.net2003IDE 查错很严格,也很死板,
检查一下用户控件的源码,对照提示的“javascript语法错误”检查
我也是菜鸟---Top
2 楼xrascal(横刀夺爱)回复于 2005-11-13 12:14:32 得分 5
怎么调用的?看看?Top
3 楼cshmai(四海为家)回复于 2005-11-13 12:20:31 得分 5
把错误的代码贴出来看看Top
4 楼zeusvenus()回复于 2005-11-13 12:30:43 得分 5
我觉得可能就是html语法错了什么的,可能不是编码问题。
它提示你哪一行哪个字符错了你就仔细看看。Top
5 楼kkkkkka(kkkkkka)回复于 2005-11-13 12:46:44 得分 0
<tr>
<td align=right><a href="javascript:window.external.addFavorite('http://localhost/mysite','demo--localhost/mysite');">收藏本站</a>
</td>
</tr>
=================================================================
上边是源码,点击后网页的标题栏显示:"语法错误 - Microsoft Internet Explorer"
这就是我上面说的语法错误,当然没有办法知道是什么错误更不知道是哪一行了.
可是把这个页面的html源代码保存成html文件,执行却没有任何问题.Top
6 楼kkkkkka(kkkkkka)回复于 2005-11-13 17:10:40 得分 0
<%@ Page language="c#" Codebehind="WebForm1.aspx.cs" AutoEventWireup="false" Inherits="mysite.WebForm1" codePage="936"%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN" >
<html>
<head>
<title>WebForm1</title>
<meta name="GENERATOR" Content="Microsoft Visual Studio .NET 7.1">
<meta name="CODE_LANGUAGE" Content="C#">
<meta name=vs_defaultClientScript content="JavaScript">
<meta name=vs_targetSchema content="http://schemas.microsoft.com/intellisense/ie5">
</head>
<body MS_POSITIONING="GridLayout">
<script language=javascript>
function aaa()
{
alert(1);
//window.external.addFavorite('http://localhost/mysite','tt');
}
</script>
<form id="Form1" method="post" runat="server">
<table width="100%">
<tr>
<td align=right><input type=button onclick="aaa();"><a href="#" onclick="javascript:aaa();">fff</a></td>
</tr>
</table>
</form>
</body>
</html>
===============================================
上面的是我新写的测试页,问题就是在这个页面中根本不能识别javascript,为什么呢?Top
7 楼hchxxzx(NET?摸到一点门槛)回复于 2005-11-13 17:41:20 得分 5
你上面写的测试页面,能正常运行吗?
如果连上面的都不能运行,可能是你机器本身的问题,比如说脚本运行文件被破坏,或者是你的浏览器禁止脚本?Top
8 楼kkkkkka(kkkkkka)回复于 2005-11-13 17:55:31 得分 0
诸位老大,这几个页面都是不能运行javascript,而把它们的源代码另存成的html却都能运行javascript了,这说明不会是机器的问题,也不会是浏览器禁止脚本的问题了,
我猜也许是和操作系统windows2003server或者页面文件编码类型有关系吧?你们说说.
Top
9 楼renyu732(Sysinfo)回复于 2005-11-13 18:11:23 得分 5
将你的Js代码在.cs文件中注册.
如下代码所示.
string strReason = "Hello,World.";
string jsStr="<script language=javascript>function Test(){";
jsStr += "window.alert('" + strReason + "');}</";
jsStr += "script>";
if (!this.IsClientScriptBlockRegistered("myJsTest"))
{
this.RegisterClientScriptBlock("myJsTest", jsStr);
}Top
10 楼CnEve(龙哥哥)回复于 2005-11-13 20:25:29 得分 5
你系统上的脚本引擎可能有问题,建议换别的机器试试。Top
11 楼kkkkkka(kkkkkka)回复于 2005-11-13 22:00:29 得分 0
如何修复系统上的脚本引擎?Top
12 楼cityhunter172(寒羽枫)回复于 2005-11-14 00:36:53 得分 5
把 IE 的安全属性降低Top
13 楼yilan505(蓝衣紫痕)回复于 2005-11-14 18:18:01 得分 5
呵呵...这个问题超级简单....
在文件里有一个高级保存...你把那个什么代码页选有签名的UTF-8就可以了.
我就是这么搞的..然后通过....我用的是国外的一个免费服务器哦....Top
14 楼kkkkkka(kkkkkka)回复于 2005-11-14 21:36:27 得分 0
高级保存? 文件里? 能具体一点吗?Top
15 楼kkkkkka(kkkkkka)回复于 2005-11-14 21:50:11 得分 0
to:yilan505(蓝衣紫痕)
有试过了,还是不行啊,是不是还有什么步骤你忘了说?Top
16 楼zxly369(小兔)回复于 2005-11-15 09:59:32 得分 5
是不是这一段的问题:
<%@ Page language="c#" Codebehind="WebForm1.aspx.cs" AutoEventWireup="false" Inherits="mysite.WebForm1" codePage="936"%>
定义了这个页面的语言为"c#",好像就不能再用其它的脚本语言了。
我也碰到过类似的问题,最后干脆把建了个HTML文档包含JavaScript,再把HTML文档
用<iframe>标记插到.aspx文件中。Top
17 楼YPerson()回复于 2005-11-15 10:10:57 得分 5
也许是空格问题,如:中全角空格,建议你重新输入一便,程序没有问题的Top
18 楼kkkkkka(kkkkkka)回复于 2005-11-15 10:41:51 得分 0
请各位达人注意一下:
1.把这些出现错误的页面的源代码保存成的html文件却没有错误
2.开发机器的操作系统是windows 2003 server,以前用win2k时没有出现过这种问题.Top
19 楼goody9807(http://goody9807.cnblogs.com)回复于 2005-11-15 10:47:50 得分 5
假设web application的编码规则是utf-8,那么js文件中如果有中文就会出现乱码(有可能是其它的页面不正常的情况)
解决这个问题请在引用javascript的地方加上charset="gb2312"或者charset="big5"
例如:<script type="text/javascript" language="javascript" src="scripts/function.js" charset="gb2312"></script> <SCRIPT language=javascript src="scripts/function.js" type=text/javascript charset=gb2312>
Top
20 楼kkkkkka(kkkkkka)回复于 2005-11-15 11:24:32 得分 0
楼上的老大,有中文时有错误,没有中文时也是有错误啊.
还有我的javascript真接写在了aspx页面里,很简单的
======================================
<%@ Page language="c#" Codebehind="WebForm1.aspx.cs" AutoEventWireup="false" Inherits="mysite.WebForm1" %>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN" >
<html>
<head>
<title>WebForm1</title>
<meta name="GENERATOR" Content="Microsoft Visual Studio .NET 7.1">
<meta name="CODE_LANGUAGE" Content="C#">
<meta name=vs_defaultClientScript content="JavaScript">
<meta name=vs_targetSchema content="http://schemas.microsoft.com/intellisense/ie5">
</head>
<body MS_POSITIONING="GridLayout">
<script language=javascript>
function aaa()
{
alert(1);
//window.external.addFavorite('http://localhost/mysite','tt');
}
</script>
<form id="Form1" method="post" runat="server">
<table width="100%">
<tr>
<td align=right><input type=button onclick="aaa();"><a href="#" onclick="javascript:aaa();">fff</a></td>
</tr>
</table>
</form>
</body>
</html>
Top
21 楼net_lover(【孟子E章】)回复于 2005-11-15 13:01:24 得分 4
把你的js文件另存为utf-8即可Top
22 楼kkkkkka(kkkkkka)回复于 2005-11-15 13:16:07 得分 0
孟子老大,我并没有使用js文件,是直接写到aspx页面里的Top
23 楼cityhunter172(寒羽枫)回复于 2005-11-15 20:34:20 得分 4
你指的出错是报什么样的错??
若看不到,按以下步骤打开脚本调试(可使用 VS.NET 调试脚本出错的地方)
控件面板 → Internet 选项 → 高 级 → 在内容的中下部分可以找到“禁止脚本调试”的选项,去掉勾 → 确定
之后,一旦脚本出错就会弹出提示框,问你要不要进行调试。Top
24 楼cityhunter172(寒羽枫)回复于 2005-11-15 20:42:56 得分 4
把
<a href="#" onclick="javascript:aaa();">fff</a>
换成
<a href="javascript:aaa();">fff</a>
Top
25 楼kkkkkka(kkkkkka)回复于 2005-11-15 23:10:08 得分 0
to: cityhunter172(寒羽枫)
1.我所说的出错并不是什么具体的错误,而是点了下根本没有反应,就像没有javascript代码一样.
2.
把<a href="#" onclick="javascript:aaa();">fff</a>换成<a href="javascript:aaa();">fff</a>
的结果就是地址栏里的地址变成了: "javascript:aaa();"Top
26 楼cityhunter172(寒羽枫)回复于 2005-11-15 23:50:19 得分 4
2.
把<a href="#" onclick="javascript:aaa();">fff</a>换成<a href="javascript:aaa();">fff</a>
的结果就是地址栏里的地址变成了: "javascript:aaa();"
________________________________________________________
你是不是在弹出的模式对话框使用、或是要框架中使用??
也就是说,你指定了整张页面的 target
若是的话,请不要使用 <a> 或者加上 target="_self" 试试Top
27 楼mg1616(内网)回复于 2005-11-16 00:41:48 得分 4
以前碰到过类似的问题,那时候asp.net还没出来
依稀记得好象要把所有 vbscript 代码放到 jscript 的后面,不知道 aspx 是否在前面自动产生了 vbscriptTop
28 楼kkkkkka(kkkkkka)回复于 2005-11-16 09:10:13 得分 0
to: cityhunter172(寒羽枫)
不是模式对话框,也没用框架,就是一个普通页面
---------------------------------------------
to: mg1616(内网)
默认的是javascript,我在页面中也只用了javascript
---------------------------------------------
以前在win2000中做开发没出现过这种问题Top
29 楼caicaibao(菜菜(包))回复于 2005-11-16 10:28:46 得分 4
保存.js,.css等时,请选用编码方式UTF-8,不然莫明出错只能怪自己Top
30 楼kkkkkka(kkkkkka)回复于 2005-11-16 10:38:18 得分 0
楼上老大,没有使用js文件和css文件,脚本是直接写到页面里的Top
31 楼cityhunter172(寒羽枫)回复于 2005-11-16 11:10:48 得分 4
Win2003 的 IE 6 的安全等级默认是“高安全等级”,请查看:
控制面板 → Internet选项 → 安全 → Internet网络 → 自定义等级 → 脚本处理 → Active Scripting → 开启
你也可以这样降低等级
控制面板 → Internet选项 → 安全 → Internet网络 → 默认等级 → 将出现的滑动块降到“中级”
若以上还不行,重装系统吧,我是没招了Top
32 楼vivi8233(吐司)回复于 2005-11-16 13:44:00 得分 4
你是不是装了3721什么的 弹出窗口给禁止了Top
33 楼net_lover(【孟子E章】)回复于 2005-11-16 14:03:58 得分 4
经测试你的代码没有问题。我们这边可以运行的。Top
34 楼kkkkkka(kkkkkka)回复于 2005-11-16 14:58:33 得分 0
to: 孟子
我的代码是在操作系统windows2003server,开发环境vs.net2003下面,本机做服务器,本机的浏览器,条件下出现问题的Top
35 楼yefeihaha(学习)回复于 2005-11-16 16:06:34 得分 4
是你的机器的原因哦 我用你的代码测试也没有问题 呀 能允许的 弹出1Top
36 楼kkkkkka(kkkkkka)回复于 2005-11-17 08:47:28 得分 0
是浏览器安全设置问题Top




