如何使用JavaScript获取HTML源代码?

时间:2015-09-30 15:12:43

标签: javascript jquery html

我正在尝试使用JavaScript获取HTML源代码:

为什么这不起作用?:

<!DOCTYPE html>
<html>
<head>
  <script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.3/jquery.min.js"></script>
  <script>
    function MyGetHTML()
      {
        $.get("www.example.com/test1.html", function(data){
          return data;
        });
      }
  </script>
</head>

<body>
  test 30.9.2015
  <script>
    alert(MyGetHTML());
  </script>
</body>
</html>

2 个答案:

答案 0 :(得分:1)

(下面,我假设您需要从您的来源的filen获取内容,来自您网页的同一来源。)

您的代码无效,因为return方法的MyGetHTML是获取请求本身,而您的请求的success回调会返回data }。

你可以这样做:

function MyGetHTML(){
    $.get("www.example.com/test1.html", function(data){
      //alert(data);
      //or use console.log() instead.
      console.log(data);
    });
  }

然后

MyGetHTML(); //This will log your data after the succesfull request.

进一步阅读:https://api.jquery.com/jquery.get/

提示您的用例:

关于制作简单的ajax请求的简单教程from Tuts+

使用纯JS:

load('test.html', function(xhr) {
    document.getElementById('container').innerHTML = xhr.responseText;
});

function load(url, callback) {
        var xhr;

        if(typeof XMLHttpRequest !== 'undefined') xhr = new XMLHttpRequest();
        else {
            var versions = ["MSXML2.XmlHttp.5.0", 
                            "MSXML2.XmlHttp.4.0",
                            "MSXML2.XmlHttp.3.0", 
                            "MSXML2.XmlHttp.2.0",
                            "Microsoft.XmlHttp"]

             for(var i = 0, len = versions.length; i < len; i++) {
                try {
                    xhr = new ActiveXObject(versions[i]);
                    break;
                }
                catch(e){}
             } // end for
        }

        xhr.onreadystatechange = ensureReadiness;

        function ensureReadiness() {
            if(xhr.readyState < 4) {
                return;
            }

            if(xhr.status !== 200) {
                return;
            }

            // all is well  
            if(xhr.readyState === 4) {
                callback(xhr);
            }           
        }

        xhr.open('GET', url, true);
        xhr.send('');
    }

或者使用jquery库

$('#container').load('test.html');

答案 1 :(得分:-2)

因为你要返回get而不是函数本身。试试这样:

 function MyGetHTML()
      {

        var datum = '';

        $.get("www.example.com/test1.html", function(data){
          datum = data;
        });

       return datum;
      }