JavaScript問題匯總

來源:互聯網
上載者:User
1. Ajax調用被殺毒軟體/防火牆阻擋
   記得05年做項目遇到過這種情況,發現用戶端關掉kv300和瑞星的網頁監控選項能夠解決問題,因為是集團和供應商之間的系統,沒有深究原因,而是要求使用者關閉殺毒軟體的網頁監控選項
   不久前的項目又遇到這個情況,卡巴會攔截ajax調用請求。將http header的connection設定為close可以解決問題:xmlHttp.setRequestHeader('Connection', 'close');。
   兩次發生這種情況時都不是使用第三方js庫,而是直接用xmlhttp實現。使用jQuery和Prototype的時候好像沒有遇到過,查了一下jQuery裡面的ajax沒有對Connection進行設定,而Prototype則給出了一段,說針對老闆本Mozilla的一個bug而將Connection設為close。http1.1的Connection預設為persistent connection,既然jQuery和Prototype不會出問題,則說明卡巴的攔截規則為:connection要麼為close;如果使用persistent connection,則其它某些header必須符合要求,否則一律攔截。

2. IE Operation aborted
   參考Dealing with IE Operation Aborted<html>
<head>
    <script type="text/javascript">
    function appendToBody() {
        var div = document.createElement('div');
        div.innerHTML = "Operation aborted!";
        document.body.appendChild(div);        
    }
    </script>
</head>
<body>
    <form>
    <script type="text/javascript">
            appendToBody();
    </script>
    </form>
</body>
</html>

   IE開啟這個文檔就會出現"Operation aborted"錯誤資訊,解決方案1.為script標籤加上defer屬性,2.讓script標籤屬於body的直接子節點。defer屬性只針對IE有效,並且導致在IE中script的執行被延遲,而其它瀏覽器下則不會,因此需要注意多瀏覽器下的副作用

3. jQuery的selector,文檔中有可能同一id出現多個地方時,一定要指定context,即$(selector, context)
   因為很多地方都需要快顯視窗選擇使用者、選擇組織圖等類似功能,沒有使用window.open,而是用jQuery做了一個div彈窗的封裝,外層div封裝了快顯視窗的標題列、按鈕、3D邊框效果、drag/drop、ajax調用、統一的使用介面等,裡面有個id為dataArea的div,用ajax調用具體的查詢頁面將html填入其中。問題發生在同一個頁面需要多個這樣的快顯視窗,導致dataArea這個id存在多個對象,selector中不使用context時,多次彈出時竟然迴圈交替的擷取到各個dataArea對象
   javascript組件用的多而複雜時,相關的一些問題跟安全執行緒一樣重要而複雜

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.