我正在构建一个Meteor.js应用程序,我想要做的事情之一是从保存的页面拉标题和元描述标签。我正在使用this cross domain program,并有一半的代码工作。跨域JavaScript - 拉Meta标签
这是摘录;它需要在标签“URL”形式给出的值,并运行代码:
$.get(url, function(response){
if ((suggestedTitle=((/<title>(.*?)<\/title>/m).exec(response.responseText))) != null){
$('#title').val(suggestedTitle[1]);
}else{
$('#title').val(url);
}
if ((suggestedDesc=($('meta[name=description]').attr('content'))) != undefined){
$('#desc').val(suggestedDesc[1]);
}else{
$('#desc').val('Description for this page cannot be found.');
}
});
我承认它不是使用正则表达式解析HTML(听取各种意见的替代最好的做法,但我没有看过但是除此之外,该脚本成功从URL中提取标题或返回Web地址(如果无法找到该地址),但描述失败并仅返回后备文本。希望得到一些帮助,谢谢:)
使用'$(response.responseText).find('meta [name =“description”]')'或其他。没有'$(response.responseText)'部分,你没有看到回应 - 你会看当前页面。既然你已经知道使用正则表达式不是解析HTML的好方法,那么让jQuery以正确的方式去做;那么只需遍历该DOM对象 – Ian
我已经试过这个,但由于某种原因仍然无法让它工作......它告诉我的响应是未定义的。我在页面上添加了一个元描述,看看它是否会尝试拉取该元素...您是否有更长的代码示例? – brandonjschwartz
我刚刚添加了一个似乎可行的答案。我希望它有帮助! – Ian