2014-01-07 24 views
3

我正在使用javascript作为鼠标悬停下拉菜单的旧网站。该菜单在Chrome中正常工作,但在添加之前缺少的<!DOCTYPE html>时停止工作。当声明DOCTYPE时,Javascript无法在Chrome中工作

据我所知,JavaScript可能过时了,但它确实工作正常,没有声明DOCTYPE。有没有一种快速的方法来修复这个网站而不需要找到一个新的脚本?

<script src="/js/script_menus.js"></script> 
<script src="/js/script_dropdown.js"></script> 

<td><a onMouseOut="MM_swapImgRestore();FW_startTimeout();" 
onMouseOver="window.FW_showMenu(window.fw_menu_1,51,109); 
MM_swapImage('img2','','img/nav_02_over.gif',1);" href="productinfo.html"> 
<img src="img/nav_02.gif" width="102" height="26" name="img2"></a></td> 

更新

我知道这并不能回答这个问题,但我已经决定要杀死这个愚蠢的JavaScript的菜单,并与CSS编写。因此,手头的问题将得到解决。

+0

尝试过渡文档类型 –

+1

如果它是一个旧网站,我想HTML5不是文档的正确文档类型?尝试html4过渡文档类型。 – enguerranws

+1

网站可能会使用一些JS怪癖,这些怪癖只有在没有给出标准文档类型时才会触发的所谓“怪异模式”中可用。 – ComFreek

回答

4

我会尝试使用过渡文档类型,这样

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" 
      "http://www.w3.org/TR/html4/loose.dtd"> 

,因为我猜你的网站有过时的HTML和JavaScript元素,那会给你一个非常松散的doctype,让几乎所有东西都去

它看起来像你有代码window.FW_showMenu,我可以很容易地找到有关信息的唯一网站是this one,它看起来像它约两倍于我(认真)。

它也似乎已经由Dreamweaver生成的,所以我觉得最简单的事情 这样做会提供最支持的未来将与jQuery或纯CSS下拉菜单

+0

试过了上面的声明,代码仍然被破坏。是的,这是旧的。:) –

+0

那么,如果它没有doctype的工作,只是离开doctype :) – scrblnrd3

+0

但老实说,我只是用新的下拉菜单替换它 – scrblnrd3

1

来代替它,它通常不是关于JavaScript,但DOM结构。如果不添加任何DOCTYPE,则删除浏览器往往会在改变DOM行为的怪异模式下工作。如果您不想更改代码中的任何内容,请尝试使用HTML4 DOCTYPE transitional,并且如果它仍然不起作用,则不添加任何decleration。 但我建议修改代码,以便创建与最新DOCTYPE兼容的DOM结构。

+0

声明过渡性DOCTYPE并没有解决的情况,而JavaScript是在我的头上:/ –

+0

@KnocksX你为什么要添加DOCTYPE声明呢? – regulus

+0

我想尽可能地使其符合规范而不会破坏任何内容。例如,它没有先前指定的字符集,这可能会导致脚本攻击。只是想尽可能多地消除。 –