0

このコミュニティのすばらしい開発者や人々の1人が提案した次のコードを追加して、自分のWebサイトのJQueryLavaLampメニューバーで直面している問題を修正しようとしています。

<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">';
}

​​&lt;/script>​​​​​​​​​​​​​​​​​​​​​​​​​​​

また、Visual Studio 2010で、次のエラーが発生しました

終了していない文字列定数

次の行の下で:

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'>";
   }
​​&lt;/script>​​​​​​​​​​​​​​​​​​​​​​​​​​​
</head>
4

2 に答える 2

1

終了スクリプトタグは、文字列リテラル内にある場合でも、ブラウザによって現在のスクリプトブロックの終わりとして解釈される可能性があります。つまり、特定の文字列リテラルは終了していません。

文字列内ではなく

'</script>'

できるよ

'<\/script>'

(JSを実行すると、円記号は無視されます。)または、次のようなものが表示される場合があります。

'<' + '/script>'

<または、を同等の文字コードに置き換えます。

'\x3C/script>'
于 2012-08-14T04:54:05.470 に答える
0

これを試してください。以下の関数を使用してブラウザのバージョン番号を取得してください

   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-14T04:28:41.043 に答える