在.Net环境下调用JavaScript出错

冰宇枫 2006-03-28 03:32:19
我在程序中需要调用一个JS写的脚本,在用记事本写的静态的HTML文件中调用没有问题,但是在.Net的ASPX文件中调用就出错,提示“缺少对象”,可是我把引用的JS拷贝到这个ASPX页面里直接调用也不出错,可以正常使用。就是不能外部调用这个JS文件,这是什么原因啊?希望高手指点!
...全文
205 12 打赏 收藏 转发到动态 举报
写回复
用AI写文章
12 条回复
切换为时间正序
请发表友善的回复…
发表回复
zhf777 2006-03-28
  • 打赏
  • 举报
回复
var e = window.event.srcElement;
WebCalendar.eventSrc = e;
WebCalendar.objExport = eval(arguments[0]);
WebCalendar.showBeforeToday = eval(arguments[1]);

function calendar() //主调函数
{
var e = window.event.srcElement;
var o = WebCalendar.calendar.style;
WebCalendar.eventSrc = e;
WebCalendar.objExport = eval(arguments[0]);
WebCalendar.showBeforeToday = eval(arguments[1]);
//...
}
请问这个主调函数该怎么改?
------------------------------------
function calendar(e,tempWebCalendar) //主调函数
{
var this.e = e;
WebCalendar this.webCalendar = (WebCalendar)tempWebCalendar;
.........
}

aspx文件中
var e = window.event.srcElement;
WebCalendar.eventSrc = e;
WebCalendar.objExport = eval(arguments[0]);
WebCalendar.showBeforeToday = eval(arguments[1]);

calendar(e,WebCalendar);

如果WebCalendar是在一个JS文件中定义的
在calendar函数所在JS文件中也要引用WebCalendar的JS文件
e参数我不太确定怎么接收
如果这样不行
试试
function calendar(e,tempWebCalendar) //主调函数
{
Object this.e = e;
WebCalendar this.webCalendar = (WebCalendar)tempWebCalendar;
.........
}
popunionxy 2006-03-28
  • 打赏
  • 举报
回复
window.[name].value也要改成document.all.[name].value
popunionxy 2006-03-28
  • 打赏
  • 举报
回复
有的时候不注意把
JS代码写在runat="server"里面 1楼2楼可能就是这种情况

解决办法:
js里面调用对象的时候加上一个all

如:html中是document.[name].value
js代码如果在runat=“server”里就要写出成document.all.[name].value
raykenio 2006-03-28
  • 打赏
  • 举报
回复
我这里基本上出现两种问题!
1,未结束的字符串常量!
2,缺少对象!
第一种问题加载的时候就出现!第二种问题使用时出现!(日期控件)
周力 2006-03-28
  • 打赏
  • 举报
回复
关注以上问题。。
本人碰到过,也解决过一些,但还有些没有完全解决。
以前的出错,
一:参数传递问题,
二 :路径问题。
三:定义问题。
冰宇枫 2006-03-28
  • 打赏
  • 举报
回复
function calendar() //主调函数
{
var e = window.event.srcElement;
var o = WebCalendar.calendar.style;
WebCalendar.eventSrc = e;
WebCalendar.objExport = eval(arguments[0]);
WebCalendar.showBeforeToday = eval(arguments[1]);
//...
}
请问这个主调函数该怎么改?
zhf777 2006-03-28
  • 打赏
  • 举报
回复
在外部页面里调用的语句是:Calendar(document.Form1.Text1, false)
------------------------------------
那只要在JS文件中定义两个参数接收这两个外部参数的值就行了
冰宇枫 2006-03-28
  • 打赏
  • 举报
回复
在外部页面里调用的语句是:Calendar(document.Form1.Text1, false)
冰宇枫 2006-03-28
  • 打赏
  • 举报
回复
应该是参数传递的原因。所调用的函数在JS文件声明中没有参数,但在外部调用时需要传递两个参数,在JS函数中接收这两个参数的语句是:
var e = window.event.srcElement;
WebCalendar.eventSrc = e;
WebCalendar.objExport = eval(arguments[0]);
WebCalendar.showBeforeToday = eval(arguments[1]);
应该是这里出的问题,但是怎么改呢?我对JS还不是很熟悉。希望大家指点!
BookSirSwordsMan 2006-03-28
  • 打赏
  • 举报
回复
.NET好像有一个BUG,我曾经测试过,用二进制编辑器打.NET建立的页面文件发现文件头部好像多了一些东西(乱码),但用记事本打开是看不出来的。你用记事本建立的网页不存在上面的现像,它调用外部的JS脚本,可以正常调用,但有些在记事本写出来的网页,并能在上面运行的脚本,到了ASP.NET页面上有些脚本就会发生错误,只有把所有脚本代码嵌入页面才可以用,我是这样做的。我引用日历控件就会发生这种问题,解决方法呢,呵,把脚本嵌入页面,要么找微软去问个为什么吧,呵呵

有人说是字符集造成的,呵呵,朋友可以试一下改一下

========================================================
我一定要超过他!!!!!!
做出我最强的东西!!!!!
再和他一比高下!!!!!!
========================================================

zhf777 2006-03-28
  • 打赏
  • 举报
回复
通过链接调用JS就要考虑参数传递的问题了
如果页面中参数没有传给函数
那函数中的参数就没有实例化
所以会出现缺少对象
比如add函数中用到X参数
在js文件中就要这样写
function add(x)
{
var this.x = x;
......
}

在ASPX页面中调用
var x_aspx = 1;
add(x_aspx);
raykenio 2006-03-28
  • 打赏
  • 举报
回复
关注!!!我也遇到一样的问题!非常讨厌!可能是.net自带的某些教本要冲突!也可能是.net中加入教本文件引用要在后台注册!~
up一下!

62,046

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

试试用AI创作助手写篇文章吧