javascript
  • jquery
  • html
  • 2013-07-16 91 views 0 likes 
    0

    例如: 一些服務爲我提供的JavaScript代碼渲染認購表格:如何把<SCRIPT SRC = 「http://example.com/script.js」>在其他元素</script>

    <script type="text/javascript" src="http://example.com/form.js"></script> 
    

    一切正常!

    但我需要從其他來源(例如ajax)獲取此代碼,並將其放在頁面上動態我不能這樣做。

    類似的東西:

    var result = '<script type="text/javascript" src="http://example.com/form.js"></script>'; 
    $('#element').html(result); 
    

    什麼也不顯示。 是的,我知道我可以創建腳本元素,然後編輯src屬性,然後將元素追加到某處,但問題是結果可能是HTML或HTML/CSS或JavaScript(腳本元素)。

    謝謝:)

    +0

    您可以搜索變量的腳本或HTML元素或CSS的類型,然後根據哪一個是真實的行事嗎? – Daniel

    回答

    0

    如果你只是希望獲得到的.js本身,你可以用一個AJAX請求讀取該文件得到它。

    這裏是一個使用jQuery的ajax函數的例子。非jQuery AJAX請求很容易完成,您只需要快速搜索語法即可。

    $.ajax('http://example.com/form.js') 
        .done(function(data) { $('#element).html(data); }); 
    

    如果您需要輸出,您可以像處理任何其他文本文件一樣對待JS文件。

    在重新讀取您的請求時,您可能正在運行JS,然後抓取任何生成並複製該文件的輸出。如果確實如此,那麼它依賴於腳本,因爲它可以完成任何事情,所以我們需要更多關於腳本的信息。

    0

    試試這個:

    <script type="text/JavaScript"> 
    function loadFile(url) { 
        function callback() { 
         if (req.readyState == 4) { // 4 = Loaded 
          if (req.status == 200) { 
           if (req.responseText.replace(/(^\s+|\s+$)/g, '').indexOf("<") == 0) { 
            eval(req.responseText); // It's a script, probably 
           } else { 
            // It's HTML, probably 
            // Insert req.responseText in some element on your page 
           } 
          } 
         } 
        }; 
        var req = new XMLHttpRequest(); 
        req.onreadystatechange = callback; 
        req.open("GET", url, true); 
        req.send(""); 
    } 
    </script>  
    

    運行的腳本源URL作爲參數的loadFile()函數。

    相關問題