2012-10-22 77 views
0

最重要,禁用jQuery的去除JavaScript代碼

我試圖調試我們的CMS(什麼是主要AJAX),但jQuery的刪除所有的腳本標記,是什麼讓我無法調試JavaScript的,我怎麼禁用這種行爲?

我想到了一個簡單的谷歌搜索,但沒有成功:(

謝謝後,我會覺得,

編輯

我的頁面之前:

<script> 
    jQuery(function(){ 
     inter = null; 
    jQuery('#parse').click(function(){ 
     jQuery('#answer').load(f(),{"POST":jQuery("#POST").val(),"start":((jQuery('#start').val()-1)*10)},function(){ 
      alert("Burrrnnnnnnn") 
      console.log("Laten we is kijken: " + inter); 
       clearInterval(inter); 
      }); 
     inter = setInterval(function(){ 
      jQuery.getJSON("/googlemonster/backend/status-test",function(json){ 
       setProgressBar(json); 
      }); 


     },200); 
     return false; 
    }); 

    }); 
    function 

    function setProgressBar(obj){ 
     var g; 
     jQuery("#progress-bar,#progress-text-alt-wrapper").animate({"width":(((g=obj["%"])==0?1:g)*2) + "px"},{queue:false}); 
     jQuery("#progress-text,#progress-text-alt").text(obj["%"] + "% " + obj["status"]); 
    } 
    </script> 
    <style> 
    #progress-text-alt-wrapper { 
     height: 30px; 
     position: absolute; 
     z-index: 2; 
     width: 1%; 
     overflow: hidden; 
    } 

    #progress { 
     border: solid black 1px; 
     padding: 1px; 
     text-align: center; 
     height: 20px; 
     width: 200px 
    } 

    #progress-bar { 
     background-color: green; 
     width: 1%; 
     height: 100%; 
    } 

    .progress-bar-text { 
     padding-top: 3px; 
     text-align: center; 
     width: 200px; 
     position: absolute; 
    } 

    #progress-text { 
    color:green; 
    } 
    #progress-text-alt { 
     color:#eee; 
    } 
    </style> 
    Query: 
    <input id="POST" type="text" /> 
    <br> 
    Pagina 
    <input value="1" id="start" 
     type="number" /> 
    <br> 
    <button id="parse">Look</button> 
    <div> 
     <div id="progress"> 
      <div id="progress-text-alt-wrapper"> 
       <div class="progress-bar-text" id="progress-text-alt">0% Nothing</div> 
      </div> 
      <div class="progress-bar-text" id="progress-text">0% Nothing</div> 
      <div id="progress-bar"></div> 
     </div> 
    </div> 
    <div id="answer"></div> 

<style> 
#progress-text-alt-wrapper { 
    height: 30px; 
    position: absolute; 
    z-index: 2; 
    width: 1%; 
    overflow: hidden; 
} 

#progress { 
    border: solid black 1px; 
    padding: 1px; 
    text-align: center; 
    height: 20px; 
    width: 200px 
} 

#progress-bar { 
    background-color: green; 
    width: 1%; 
    height: 100%; 
} 

.progress-bar-text { 
    padding-top: 3px; 
    text-align: center; 
    width: 200px; 
    position: absolute; 
} 

#progress-text { 
color:green; 
} 
#progress-text-alt { 
    color:#eee; 
} 
</style> 
Query: 
<input id="POST" type="text"> 
<br> 
Pagina 
<input value="1" id="start" type="number"> 
<br> 
<button id="parse">Look</button> 
<div> 
    <div id="progress"> 
     <div id="progress-text-alt-wrapper"> 
      <div class="progress-bar-text" id="progress-text-alt">0% Nothing</div> 
     </div> 
     <div class="progress-bar-text" id="progress-text">0% Nothing</div> 
     <div id="progress-bar"></div> 
    </div> 
</div> 
<div id="answer"></div> 
+1

「但jQuery的刪除所有的腳本標記,是什麼讓我無法調試JavaScript的,我怎麼禁用這種行爲?」 - 你爲什麼這麼認爲? – zerkms

+0

它是,它刪除腳本標籤執行它,它不見了 – EaterOfCode

+0

需要看到它影響的網站/代碼。這不是默認行爲,但可能出現在非常奇怪的情況下。請參閱:http://stackoverflow.com/questions/6532644/how-to-prevent-jquery-from-removing-the-script-tags以獲得類似的聲音事件。 –

回答

0

一些研究,我finnaly可以修復感謝這裏的人的問題後,

我做了一個小的jQuery插件吧,現在的腳本標記都沒有得到,刪除,但執行。

(function($){ 

    $.fn.loadDebuggable = function(url){ 

     data = typeof(arguments[1]) == "object"?arguments[1]:{}; 
     success = arguments[2]||typeof(arguments[1]) == "function"?arguments[1]:function(){}; 
     return $.ajax(url,{ 
      "context":this, 
      "success":[function(data){ 
       var div = document.createElement('DIV'); 
       div.innerHTML = data; 
       this[0].innerHTML = ""; 
       while (div.firstChild) 
       { 
        this[0].appendChild(div.firstChild); 
        div.removeChild(div.firstChild); 
       }; 


      },success], 
      "type":"GET", 
      "data":data 
      }); 
    } 
})(jQuery); 

感謝,

+0

這是一段非常奇怪的代碼。遵循這樣的想法,至少我不使用任何類似的東西來做我想要的東西,我的js告訴我你做錯了什麼。 – zerkms

+0

@zerkms它適用於我:D – EaterOfCode

+0

是的,但你正在解決沒有人遇到的問題;-) – zerkms

0

你說得對 - 這是jQuery的一個功能,可以去掉腳本標籤。您需要改用基本的JavaScript方法。

參見:Can't append <script> element

腳本將被首先計算,並且然後丟棄。

http://api.jquery.com/append/

+0

但是我需要做什麼,那麼這是一個Ajax請求? – EaterOfCode

+0

「你說得對 - 這是jQuery的一個功能,可以去掉腳本標籤。」 ---這種說法是錯誤的。打開當前的stackoverflow頁面,看看那裏有'script'標籤。所以,不是答案 – zerkms

+0

這是'.append()'的函數,它調用方法'.domManip()',該方法依次執行任何內嵌JavaScript並隨後刪除腳本標記。請參閱:https://github.com/jquery/jquery/blob/master/src/manipulation.js @line:311因此,您無法使用jQuery DOM操作方法之一插入腳本。 – feeela