为什么我在网站上看到这个错误?
我试图解决这个问题,我用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:
我我的代码更新到你的建议是什么家伙,我仍然得到同样的错误。此外,这里的错误的快照:
更新#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>
试试这个,使用下面的函数来获取浏览器的版本号
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'>";
}
感谢您的帮助,但没有任何改变与我。你能看看我更新的问题吗? – 2012-08-14 04:43:29
反转单引号和双引号应该没有任何区别。两者都是封装html属性值的值,对于JS字符串文字都是有效的。 – nnnnnn 2012-08-14 04:49:26
**如何把它放在母版页中,因为我正在开发ASP.NET应用程序?**我应该把所有的代码放在'
'节 – 2012-08-14 05:13:40
关闭脚本标记可能被浏览器解释为当前脚本块的结尾,即使它们位于字符串文字中,这又意味着特定的字符串文本未终止。
在你的字符串,而不是
'</script>'
你可以做
'<\/script>'
(当JS运行反斜线被忽略。)或者有时候你看到的是这样的:
'<' + '/script>'
或用等同的字符代码替换<
:
'\x3C/script>'
您知道'$ .browser'即将被弃用。看看'$ .support'。 – elclanrs 2012-08-14 04:27:09