3

我最近必须使用的旧 Web 应用程序出现问题。有一个包含以下内容的输入元素:

onClick="javascript:Run('**SomeFilePath.mdb**');"

这应该做的是打开用户各自的 .mdb 文件。

首先,在任何地方都没有定义 javascript Run 函数。我在网上搜索,因为我认为它可能是一个旧的内置 javascript,但我找不到任何东西。

其次,有一个 vbscript Run() 函数,它实现了源代码中定义的所描述的行为,但据我所知,除了通过 ajax 之外,javascript 不能调用它,正如你所看到的那样正在发生。

奇怪的是这适用于某些用户!

如果有人能解释为什么我会感激它!

编辑:我正在处理的唯一浏览器是 IE。我知道有一种 active-x 方式来打开文件,这就是我上面提到的 vbscript Run() 函数正在使用的方式。

更新:所以经过更多的调查/研究,看起来当 IE 找不到 javascript Run() 函数时,它默认为 IS 定义的 vbscript Run() 函数。但是,这只发生在某些版本的 IE 上。任何人都可以确认这种行为吗?

研究链接:

评论指的是 IE 如何默认使用脚本

有关在同一页面中使用两种脚本类型的 Msdn 文章

4

1 回答 1

1

是的,您可以从 javascript 运行 vbscript,反之亦然,有时当一种语言不支持另一种语言时,我会这样做。您可以在脚本中指明默认语言,以防您没有像 .

您也可以在调用函数时指定它,例如 vbscript:functionname("..") 或 javascript:functionname("..")

正如您所注意到的,在某些情况下,浏览器会因为使用错误的语言搜索/执行函数而感到困惑并且找不到函数。我想这种行为也会受到版本的影响,但肯定会受到脚本中逻辑流动的顺序的影响,如果浏览器首先执行 javascript,他倾向于在这种语言中走得更远,以防有疑问。所以要避开这个

  1. 除非真的有必要,否则不要将两者混合,用 javascript 翻译你的 vbscript 函数)
  2. 尝试始终使用 javascript,vbscript 不太擅长处理 DOM 等
  3. 如果它们混合在一起,请在调用函数时指定正确的脚本语言
  4. 打开脚本标签时,还要给出正确的语言,例如或

因此,具体来说,要解决您的问题,请将 vbsripts 函数转换为 javascript,如果不可能,请调用您的函数onClick="vbscript:Run('**SomeFilePath.mdb**')"

于 2012-08-05T10:44:00.187 回答