Jquery 网站预览
我正在做一个项目,在这个项目中我有像facebook这样的流式发布, 用户也可以发布任何网站的链接,我想像facebook一样实现它,即当用户发布链接时,它会在文本框下方显示网站预览,我不知道如何才能做到这一点 如何实现这一功能,我正在使用Ajax调用在流上发布Jquery 网站预览,jquery,asp.net-mvc,entity-framework,Jquery,Asp.net Mvc,Entity Framework,我正在做一个项目,在这个项目中我有像facebook这样的流式发布, 用户也可以发布任何网站的链接,我想像facebook一样实现它,即当用户发布链接时,它会在文本框下方显示网站预览,我不知道如何才能做到这一点 如何实现这一功能,我正在使用Ajax调用在流上发布 $.ajax({ url: "My Controller ActionResult", type: "POST", data: JSON.s
$.ajax({
url: "My Controller ActionResult",
type: "POST",
data: JSON.stringify({ objResourceModel: objResource, objTagList: TagTypeList, sendEmail: $("#chkbxSendEmail")[0].checked, groupId: ResourceVariable.GroupId, isblog: isblog, isquest: isquest }),
dataType: "html",
contentType: "application/json; charset-utf-8",
beforeSend: function () {
$("#btnPost").attr("disabled", "disabled");
loading = setTimeout("$('#load').show()", 200);
},
complete: function () {
clearTimeout(loading);
$("#load").hide();
$("#btnPost").removeAttr("disabled");
},
success: function (Result) {
if (Result == "false") {
alert("Video must be of Youtube or vimeo");
}
else {
$('#divResourceDetails').html(Result);
ClearPostSectionData(); //function call
SetUpCommentSectionEvent(); //function call set up events
GetLatestAnnouncements();
$('#tagOutput').html("");
outputTagHtml = '';
TagTypeList = [];
//GetBrowseByInstructor(); //function call
//GetBrowseByTagType(); //function call
GetBrowseByResource(); //function call
GetBrowseByMonth(); //function call
}
},
error: function (msg) {
alert("Unable to save uploaded post details: " + msg.responseText);
}
});
由于您需要在远程站点上有效地解析HTML(对于头部的元信息之类的内容),因此您需要检索HTML来处理它 虽然jQuery不允许您跨来源(不同的域-请参阅)发送/接收,但除了“填充JSON”(jsonp-)之外,您的服务器代码可以 您可以发出HttpWebRequest(http://msdn.microsoft.com/en-us/library/system.net.httpwebrequest.aspx)对于URL,则取决于您是否将HTML发送到要在客户端上解析的JavaScript代码,或者您可以在服务器上解析它,并将结构化对象发送到客户端代码,以便简单地推送到div中 通过解析HTML服务器端,您可以将其缓存到数据库中(以防其他人共享相同的url),或者分析它并记录错误(您不希望您的服务器不断命中返回404的url!)
最终,您可能只想返回一个局部视图(因为您正在使用ASP.NET MVC),但您可以根据内容类型聪明地返回一个专门的视图。例如,Facebook允许你在新闻提要上现场观看YouTube视频,并在线显示图片。如果你共享一个网站,它通常允许你从它在你共享的页面中找到的一组图像中进行选择。我会在页面中用一个指向正在共享的url的iframe快速完成。这是为了防止您只需要页面预览,而不需要像Facebook那样解析该页面的html来提取元数据