使用javascript提取页面标题

使用javascript提取页面标题,javascript,jquery,Javascript,Jquery,我正在尝试使用url提取外部站点的页面标题 您知道“document.title”如何返回JS正在运行的页面的标题吗?我想知道我是否可以说“'http://google.com“.title”(不起作用)或类似的内容来获取另一页的标题 更新: 我做了一些搜索,显然这可以通过JQuery完成。看见如果我理解正确的话,JQuery是javascript的一种扩展,并且在我所做的工作中支持它。那么,有人可以发布JQuery代码来实现这一点吗 这是基本思想:有一个标有“url”的输入框。和一个标签为“转

我正在尝试使用url提取外部站点的页面标题

您知道“document.title”如何返回JS正在运行的页面的标题吗?我想知道我是否可以说“'http://google.com“.title”(不起作用)或类似的内容来获取另一页的标题

更新: 我做了一些搜索,显然这可以通过JQuery完成。看见如果我理解正确的话,JQuery是javascript的一种扩展,并且在我所做的工作中支持它。那么,有人可以发布JQuery代码来实现这一点吗

这是基本思想:有一个标有“url”的输入框。和一个标签为“转换为页面标题”的按钮,其目的是输入框的值将更改为用户给定的url的标题(在他们单击按钮后)

函数getTitle(url){

}


谢谢大家!

这在Javascript中是不可能的。您必须使用服务器脚本来实现这一点。

我认为您正在寻找$.ajax,因为这是一个跨域请求,可以通过调用YQL从js完成:

编辑

好吧,我终于得到了一个有效的例子:

编辑

下面是如何修复xdomain.js中的脚本标记问题:

   if (_success) {
    var dataString = "";
    try { 
    dataString = data.results[0].replace(/<script[^>]+?\/>|<script(.|\s)*?\/script>/gi, '');
    }
    catch {
    dataString = data.results[0];

}
    // Fake XHR callback.
    _success.call(this, {
    responseText: dataString
    }, 'success');
       }
    }
if(\u成功){
var dataString=“”;
试试{
dataString=data.results[0]。替换(/]+?\/>|/gi');
}
抓住{
dataString=data.results[0];
}
//假XHR回调。
_成功,叫(这个){
responseText:dataString
}"成功";;
}
}

我把你的问题搞错了。。我只看标题。。。此链接将在某些地方帮助您。。。谢谢法希姆。我在一个问题中看到了一个可能会有所帮助的想法。请参见下文JQuery什么时候可以做到这一点?我只是看了一下(见T.Stone的第一个答案),它似乎与我所要寻找的是一致的。但是,我不知道JQuery,代码看起来好像找到了H2标记?我是否只需要将
h2
更改为
title
?此外,OP(在我刚刚链接到的问题上)说文件太大,有人建议“用一个系列(或循环)将其分块加载”。有人能帮我吗?我不知道你会如何用循环来打破它还有一个问题:这个问题中的JQuery代码是否适用于外部站点(比如我不拥有的站点)?@AnthonyNewman即使有JQuery的帮助,你也无法从其他域获得页面标题。您只能在服务器端脚本的帮助下请求该页面。@AnthonyNewman您可以使用下面的方法使用jQuery来完成,但Ananth的回答并不错误。我在下面给出的答案是调用YQL,然后YQL使用服务器调用来获取跨域内容。我不知道YQL有多快或多可靠……如果你打算使用它,你需要得到xdominajax.js文件。我不会依赖小提琴中的参考来获得实际的代码。好的,迈克。我成功地将它改编成我的代码,但有一个小问题,我希望您能解释一下。以下是我的代码的基本思想:。如果您将url或任何其他url放入输入框中并单击“转换”,则它可以工作。一个不起作用的领域是。试着把它放进盒子里,它就不起作用了。这里有什么问题?我发现了问题。看起来xdomain脚本从响应中删除了标记,但在《纽约时报》页面中没有脚本标记,至少当您得到响应时是这样。。。所以当调用.replace时,它会爆炸。您可以在开发人员的工具中看到这一点。您可以下载xdomain文件,并在特定代码行中进行尝试,这样,如果没有脚本标记,它就不会爆炸。我想试一下从第55行到第65行。@AnthonyNewman我在上面的答案中添加了一个例子。我不确定您是否需要在catch中添加异常,我没有经常使用js.ok这样做。我尝试添加了你建议的尝试捕捉,但没有效果。请参阅(我已将try-catch添加到,并已上载)
   if (_success) {
    var dataString = "";
    try { 
    dataString = data.results[0].replace(/<script[^>]+?\/>|<script(.|\s)*?\/script>/gi, '');
    }
    catch {
    dataString = data.results[0];

}
    // Fake XHR callback.
    _success.call(this, {
    responseText: dataString
    }, 'success');
       }
    }