奇怪的现象,实在找不出原因,代码就那么几行呀,贴出来大家看看

tuwicn 2006-04-16 09:42:08
mu.js文件代码:

var wma="Temp/wma.m3u";


Play.asp文件代码:

<SCRIPT src="mu.js"></SCRIPT>
<script language="javascript">
function b(c)
{
alert(c)
}
</script>
<input type="button" onclick="b(wma)">
<%
response.write(request.querystring("SongsID"))
%>

当我在浏览器地址栏输入:
http://MyComputer/Play.asp?SongsID=12/7282/69273_12/7282/69274_12/7282/69275_
打开页面后点里面的按钮,没问题

但当我在浏览器地址栏输入:
http://MyComputer/Play.asp?SongsID=12/7282/69273_12/7282/69274_12/7282/69275_12/7282/69276_12/7282/69277_12/7282/69278_12/7282/69279_12/7282/69280_12/7282/69281_12/7282/69282_12/7282/69283_12/7282/69284_12/7282/69285_12/7282/69286_12/7282/69287_12/7282/69288_12/7282/69289_12/7282/69290_12/7282/69291_12/7282/69292_12/7282/69293_12/7282/69294_12/7282/69295_12/7282/69296_12/7282/69297_12/7282/69298_12/7282/69299_12/7282/69300_12/7282/69301_12/7282/69302_12/7282/69303_12/7282/69304_12/7282/69305_12/7282/69306_12/7282/69307_12/7282/69308_12/7282/69309_12/7282/69310_12/7282/69311_12/7282/69312_12/7282/69313_12/7282/69314_12/7282/69315_12/7282/69316_12/7282/69317_
打开页面后点里面的按钮,就出错了,出错提示是:
行:8
字符:1
代码:0
错误:'wma' 未定义


两个URL不同之处就是SongsID参数的值的长度不同而已,难道参数长度限制这么短的吗?不解....!
恳请各位找出原因,谢谢大家!

...全文
345 19 点赞 打赏 收藏 举报
写回复
19 条回复
切换为时间正序
当前发帖距今超过3年,不再开放新的回复
发表回复
yyszh 2006-04-19
sdsuper(泊舟) 说的有理。
这个现象的最直接的原因肯定是mu.js没有加载,至于为什么没有加载的原因,就很偶然了,可能是IE的一个bug。
你用非IE内核的浏览器试试看。
  • 打赏
  • 举报
回复
sdsuper 2006-04-18
呵呵。我认为应该是我说的原因。你可以在仔细测试一下,这可能是ie的问题。你换个浏览器会发现问题消失了,不同浏览器处理http相应是有的差别,而且用get方式是有限制的。你可以看看RFC中的http。
而W3C也有相应的说明
Those that are executed one time when the document is loaded by the user agent. Scripts that appear within a SCRIPT element are executed when the document is loaded. For user agents that cannot or will not handle scripts, authors may include alternate content via the NOSCRIPT element.
Those that are executed every time a specific event occurs. These scripts may be assigned to a number of elements via the intrinsic event attributes.

你可以做以下测试,把那个js文件写得很大很大,在html中直接调用js的函数或是变量名称,当你一发现html显示完毕后,就去调用。问题就出来了。
所以不推荐使用像你那样的globel写法,如果是异步的情况,你会发现情况会更严重。呵呵
  • 打赏
  • 举报
回复
tuwicn 2006-04-18
谢谢sdsuper(泊舟),但我觉得这个不是主要原因,现在的现象就是用IP地址100%可以,用计算机名称100%出错.
  • 打赏
  • 举报
回复
sdsuper 2006-04-17
这几天刚好重新认真看了一下HTTP协议,顺便给你一个解释:
由于<Script src="..."...>标记在加载js的时候与htm不是同步处理的,IE把html加载完成后
并不保证js也加载完成了。此时你去调用js文件中的变量可能就出错了,
根据HTTP协议
IE先发送GET /Play.asp HTTP1.1
IE收到解析的页面后再发送GET /mu.js HTTP1.1
至于html和js之间调用是由IE来决定的
上可能IE是用不同个线程来处理,所以在不同配置即使在相同机器上加载的过程也可能不一样
推荐直接把变量直接写在HTML中
<script languange="javascript">
var wma="Temp/wma.m3u";
</script>

如果要使用<script src='...'>方式最好在调用js文件里面的变量或函数时,判断该SCRIPT的状态
  • 打赏
  • 举报
回复
b(wma)??
应该写成b(<%=wma%>)吧??
  • 打赏
  • 举报
回复
hbhbhbhbhb1021 2006-04-17
可能是路径问题,你在mu.js中加一句
alert("haha");
分别用两种情况 看看能不能弹出来
  • 打赏
  • 举报
回复
tuwicn 2006-04-17
哈哈,有重大发现了!!!
将URL中的计算机名"MyComputer"换成IP地址就可以!

http://192.168.1.100/Play.asp?SongsID=12/7282/69273_12/7282/69274_12/7282/69275_12/7282/69276_12/7282/69277_12/7282/69278_12/7282/69279_12/7282/69280_12/7282/69281_12/7282/69282_12/7282/69283_12/7282/69284_12/7282/69285_12/7282/69286_12/7282/69287_12/7282/69288_12/7282/69289_12/7282/69290_12/7282/69291_12/7282/69292_12/7282/69293_12/7282/69294_12/7282/69295_12/7282/69296_12/7282/69297_12/7282/69298_12/7282/69299_12/7282/69300_12/7282/69301_12/7282/69302_12/7282/69303_12/7282/69304_12/7282/69305_12/7282/69306_12/7282/69307_12/7282/69308_12/7282/69309_12/7282/69310_12/7282/69311_12/7282/69312_12/7282/69313_12/7282/69314_12/7282/69315_12/7282/69316_12/7282/69317_

这样没问题,但为什么会IP就可以呢?
  • 打赏
  • 举报
回复
hbhbhbhbhb1021 2006-04-17
楼主先别急,慢慢来,由于JS有些地方出错,导致var 那句没执行
你先一块一块JS去掉,看看是哪块报错了
  • 打赏
  • 举报
回复
tuwicn 2006-04-17
早上在公司试过,的确没问题,现在回到家,再试,还是不行,晕,快崩溃了!
  • 打赏
  • 举报
回复
Dogfish 2006-04-17
一般时其他代码出错,var wma="Temp/wma.m3u";运行不到而导致。
这种问题几乎天天碰到。经常时一个新的地方出错,导致一些原来work的地方出错。
  • 打赏
  • 举报
回复
chouchy 2006-04-16
但我按照上面的代码保存文件来测试,的确有问题.
--------------------------------------------
win2k 5.0 sp4+IIS 5.0+IE6.0,没有任何问题。
  • 打赏
  • 举报
回复
chouchy 2006-04-16
在我机器上运行以上代码也没有任何问题。
  • 打赏
  • 举报
回复
tuwicn 2006-04-16
不会吧?!

正式的页面还有其他代码的,因为出现问题,所以我把它简化到现在这个样子,但我按照上面的代码保存文件来测试,的确有问题.

现在听到你这么说,我感到天要塌下来了,难道只有我自己来找原因了,晕

你的是什么浏览器,我用IE,遨游都测试过了,环境是:windows2000 Server+II5
  • 打赏
  • 举报
回复
hbhbhbhbhb1021 2006-04-16
晕,我试过加了你的字符串没问题。
楼主的代码只有这些吗?
  • 打赏
  • 举报
回复
tuwicn 2006-04-16
回 hbhbhbhbhb1021(天外水火(我要多努力)) 兄:

试过去掉var也一样,
真奇怪啊
  • 打赏
  • 举报
回复
tuwicn 2006-04-16
回楼上,wma在mu.js这个文件里面
  • 打赏
  • 举报
回复
asert 2006-04-16
wma在哪里?
  • 打赏
  • 举报
回复
hbhbhbhbhb1021 2006-04-16
把var去掉看看
  • 打赏
  • 举报
回复
morris_lz 2006-04-16
aaa
  • 打赏
  • 举报
回复
相关推荐
发帖
JavaScript
加入

8.5w+

社区成员

Web 开发 JavaScript
申请成为版主
帖子事件
创建了帖子
2006-04-16 09:42
社区公告
暂无公告