代码之家  ›  专栏  ›  技术社区  ›  Matrym

jquery不能在chrome中$(…).load()头部标题。

  •  1
  • Matrym  · 技术社区  · 16 年前

    我需要通过URL获取远程页面的标题。代码在ffx中工作,但不在chrome中工作。有人有什么想法吗?

    $(document).ready(function(){
        $("title").remove();
        $("head").load("http://www.latentmotion.com title");
    });
    
    1 回复  |  直到 16 年前
        1
  •  3
  •   Sean Kinsey    16 年前

    在这里,它适用于所有浏览器

    $.get("http://www.latentmotion.com", function(response){
         alert((/<title>(.*?)<\/title>/m).exec(response)[1]);
      });
    

    你可以在这里测试它 http://jsfiddle.net/N7D5r/

    如果你想完全避免jquery

    var getXhr = (function () {
        if ("XMLHttpRequest" in window) {
            return function () {
                return new XMLHttpRequest();
            };
        }
        else {
            var item = (function () {
                var list = ["Microsoft", "Msxml2", "Msxml3"],
                    i = list.length;
                while (i--) {
                    try {
                        item = list[i] + ".XMLHTTP";
                        var obj = new ActiveXObject(item);
                        return item;
                    }
                    catch (e) {}
                }
            }());
            return function () {
                return new ActiveXObject(item);
            };
        }
    }());
    
    var req = getXhr();
    req.open("GET", "http://www.latentmotion.com", true);
    req.onreadystatechange = function () {
        if (req.readyState == 4) {
            if (req.status >= 200 && req.status < 300) {
                // here you retrieve the title
                var title = (/<title>(.*?)<\/title>/m).exec(req.responseText)[1];
                alert(title);
            }
            req.onreadystatechange = null;
            delete req.onreadystatechange;
        }
    };
    req.send();