javascript
  • jquery
  • css
  • menubar
  • 2012-08-14 110 views 0 likes 
    0

    我試圖解決這個問題,我用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

    回答

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

    1

    關閉腳本標記可能被瀏覽器解釋爲當前腳本塊的結尾,即使它們位於字符串文字中,這又意味着特定的字符串文本未終止。

    在你的字符串,而不是

    '</script>' 
    

    你可以做

    '<\/script>' 
    

    (當JS運行反斜線被忽略。)或者有時候你看到的是這樣的:

    '<' + '/script>' 
    

    或用等同的字符代碼替換<

    '\x3C/script>' 
    
    相關問題