为什么我在网站上看到这个错误?

问题描述:

我试图解决这个问题,我用jQuery LavaLamp的菜单栏在我的网站中加入下面的代码串由惊人的发展,人们在这个社会一个建议面临的问题:为什么我在网站上看到这个错误?

<script> 
if ($.browser.version < 9.0 && $.browser.msie) { 
document.getElementsByTagName("head")[0].innerHTML = '<script type="text/javascript" src="./Scripts/jquery.easing.1.1.js"></script><script type="text/javascript" src="./Scripts/jquery.preloader.js"></script><script type="text/javascript" src="./Scripts/jquery.lavalamp.js"></script><script type="text/javascript" src="./Scripts/lavalamp-config.js"></script>'; 
} 
else { 
    document.getElementById("head")[0].innerHTML = '<script type="text/javascript" src="./Scripts/jquery.easing.1.1.js"></script><script type="text/javascript" src="./Scripts/jquery.preloader.js">'; 
} 

​​</script>​​​​​​​​​​​​​​​​​​​​​​​​​​​ 

而且在在Visual Studio 2010中,我得到了以下错误

Unterminated string constant

以下行下:

document.getElementsByTagName("head")[0].innerHTML = '<script type="text/javascript" src="./Scripts/jquery.easing.1.1.js"></script><script type="text/javascript" src="./Scripts/jquery.preloader.js"></script><script type="text/javascript" src="./Scripts/jquery.lavalamp.js"></script><script type="text/javascript" src="./Scripts/lavalamp-config.js"></script>'; 

那么我该如何解决这个问题?

更新#1:

我我的代码更新到你的建议是什么家伙,我仍然得到同样的错误。此外,这里的错误的快照:

enter image description here

更新#2 我修改代码来让母版页包含下面的代码,我仍然获得,显示在顶部同样的错误如上面的快照中所示。

<head> 
<script type="text/javascript"> 
function getInternetExplorerVersion() 
    // Returns the version of Internet Explorer or a -1 
    // (indicating the use of another browser). 
    { 
     var rv = -1; // Return value assumes failure. 
     if (navigator.appName == 'Microsoft Internet Explorer') { 
      var ua = navigator.userAgent; 
      var re = new RegExp("MSIE ([0-9]{1,}[\.0-9]{0,})"); 
      if (re.exec(ua) != null) 
       rv = parseFloat(RegExp.$1); 
     } 
     return rv; 
    } 
</script> 

<script type="text/javascript"> 
if (getInternetExplorerVersion() < 9.0 && browser_type = "Microsoft Internet Explorer") { 
    document.getElementsByTagName("head")[0].innerHTML = "<script type='text/javascript' src='./Scripts/jquery.easing.1.1.js'></script><script type='text/javascript' src='./Scripts/jquery.preloader.js'></script><script type='text/javascript' src='./Scripts/jquery.lavalamp.js'></script><script type='text/javascript' src='./Scripts/lavalamp-config.js'></script>"; 
} else { 
     document.getElementById("head")[0].innerHTML = "<script type='text/javascript' src='./Scripts/jquery.easing.1.1.js'></script><script type='text/javascript' src='./Scripts/jquery.preloader.js'>"; 
    } 
​​</script>​​​​​​​​​​​​​​​​​​​​​​​​​​​ 
</head> 
+0

您知道'$ .browser'即将被弃用。看看'$ .support'。 – elclanrs 2012-08-14 04:27:09

试试这个,使用下面的函数来获取浏览器的版本号

function getInternetExplorerVersion() 
    // Returns the version of Internet Explorer or a -1 
    // (indicating the use of another browser). 
    { 
     var rv = -1; // Return value assumes failure. 
     if (navigator.appName == 'Microsoft Internet Explorer') { 
      var ua = navigator.userAgent; 
      var re = new RegExp("MSIE ([0-9]{1,}[\.0-9]{0,})"); 
      if (re.exec(ua) != null) 
       rv = parseFloat(RegExp.$1); 
     } 
     return rv; 
    } 

及以下用于获取浏览器的名称

VAR browser_type = navigator.appName( “Microsoft Internet Explorer中” )

因此新的功能将类似于

if (getInternetExplorerVersion() < 9.0 && browser_type = "Microsoft Internet Explorer") { 
    document.getElementsByTagName("head")[0].innerHTML = "<script type='text/javascript' src='./Scripts/jquery.easing.1.1.js'></script><script type='text/javascript' src='./Scripts/jquery.preloader.js'></script><script type='text/javascript' src='./Scripts/jquery.lavalamp.js'></script><script type='text/javascript' src='./Scripts/lavalamp-config.js'></script>"; 
} else { 
     document.getElementById("head")[0].innerHTML = "<script type='text/javascript' src='./Scripts/jquery.easing.1.1.js'></script><script type='text/javascript' src='./Scripts/jquery.preloader.js'>"; 
    } 
+0

感谢您的帮助,但没有任何改变与我。你能看看我更新的问题吗? – 2012-08-14 04:43:29

+0

反转单引号和双引号应该没有任何区别。两者都是封装html属性值的值,对于JS字符串文字都是有效的。 – nnnnnn 2012-08-14 04:49:26

+0

**如何把它放在母版页中,因为我正在开发ASP.NET应用程序?**我应该把所有的代码放在'

'节 – 2012-08-14 05:13:40

关闭脚本标记可能被浏览器解释为当前脚本块的结尾,即使它们位于字符串文字中,这又意味着特定的字符串文本未终止。

在你的字符串,而不是

'</script>' 

你可以做

'<\/script>' 

(当JS运行反斜线被忽略。)或者有时候你看到的是这样的:

'<' + '/script>' 

或用等同的字符代码替换<

'\x3C/script>'